Отладчик 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 и делали это странное сообщение. Чтобы исправить это, я просто изменил одно из имени метода. Пожалуйста, дайте мне знать, если это работает для вас.