Отладчик Xcode 5 не печатает объекты
У меня возникла проблема отладки с консоли с помощью lldb debugger после обновления до xcode 5. Я использовал для ввода po object
, и он работал нормально, однако теперь я получаю сообщение об ошибке
error: instance method 'performBlock:afterDelay:' has incompatible result types in different translation units ('id' vs. 'void')
note: instance method 'performBlock:afterDelay:' also declared here
вот скриншот стека, код, в котором остановился отладчик, значения в визуальном отладчике и консоли отладчика. что может быть проблемой, это ошибка в xcode 5 или есть что-то, что я могу сделать, чтобы исправить это?
Ответы
Ответ 1
Я нашел способ исправить эту проблему. Проблема заключалась в том, что моя личная внутренняя структура объявляла метод в категории на NSObject
, называемой:
- (void)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
Но сторонняя структура (здесь BlocksKit) объявляла такой же метод:
- (id)performBlock:(void (^)(void))block afterDelay:(NSTimeInterval)delay;
Эти два, казалось, вмешивались во время выполнения LLDB и делали это странное сообщение. Чтобы исправить это, я просто изменил одно из имени метода. Пожалуйста, дайте мне знать, если это работает для вас.