2012-04-16 2 views
19

Я использую Xcode 4.3.1 и как только я хочу использовать lldb, я едва ли получить какую-либо информацию об отладке, но получить следующий результат вместо ро-ки на простом NSMutableDictionary собственности:lldb странная ошибка

(lldb) po _keywordCache 
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id') 
error: instance method 'delegate' has incompatible result types in different translation units ('objc_object *' vs. 'id') 
note: instance method 'delegate' also declared here 
note: declared here with type 'id' 
note: instance method 'delegate' also declared here 
note: declared here with type 'id' 
error: 2 errors parsing expression 

Переключение на gdb всегда дает правильные результаты.
Любая идея?

+4

Пока нет предложений, но я просто хочу добавить, что у меня такая же проблема. – danielpunkass

+1

Я в настоящее время вижу это с Xcode 5.1.1, когда я ввожу 'expr tableView.translatesAutoresizingMaskIntoConstraints' в отладчик: он говорит:' error: метод экземпляра 'undoManager' имеет несовместимые типы результатов ... ' – Drux

ответ

8

Источником проблемы в моем случае было то, что здесь рассматриваемое свойство «делегировать» объявляется как совсем другой тип в переменной экземпляра и объявлении свойства. В моем случае тип переменной экземпляра был id, а объявление свойства было id<SomeProtocol>.

Я собираюсь сообщить об этом как об ошибке для Apple, так как это не должно приводить к неспособности проверить переменные. Исправление состоит в том, чтобы убедиться, что переменная экземпляра и объявление свойства описывают «делегировать» как точно такой же тип. Надеюсь это поможет!

+0

У вас есть открытый радар I может обмануть? Меня это тоже раздражало. –

+0

Привет, Бен - я не сообщил об этом, потому что в моих тестах с последними инструментами на Mountain Lion он кажется исправленным. – danielpunkass

+0

Прохладный, спасибо за продолжение. –

-1

У меня также была эта ошибка, для меня это действительно ничего не случилось с кодом. Все, что я сделал, это нажать кнопку справа от кнопки «Переключить глобальную точку останова» в консоли.

It is the blue arrow shaped button.
Это синяя стрелочная кнопка.

+0

. Где эта кнопка? Можете ли вы предоставить скриншот? – abbood

+0

Добавлен скриншот. Однако это не сработало для меня. – Mundi

+0

Это кнопка, позволяющая точка останова. Он полностью отделен от проблемы. –

1

Я знаю, что это уже поздно, но натолкнулся на это на Xcode 6, необходимо было сделать чистую папку сборки (при удержании при удержании).

0

У меня такая же проблема в Xcode 7.3 (7D1002) со вчерашнего дня. До этого он работал отлично в течение нескольких недель. В моем случае теперь даже простой «po someString» не работает:
ошибка: метод экземпляра 'URLEncodedString' имеет несовместимые типы результатов в разных единицах перевода ('void *' vs. 'NSString *')
error: instance метод «URLDecodedString» имеет несовместимые типы результатов в различных единицах трансляции («недействительным *» против 'NSString *)
Примечание: метод экземпляра «URLEncodedString» также заявил здесь
Примечание: метод экземпляра «URLDecodedString» также заявил здесь
ошибка: 2 ошибки разбора выражения

Вещи, которые я пробовал:

  • выйти и перезапустить Xcode7 и имитатор (они оба были работает с нескольких дней без повторного запуска)
  • Xcode: Product-> Очистить и (удерживая клавишу опции) Очистить папку сборки
  • Удалить ~/Library/Предпочтения/com.apple.dt.Xcode.plist
  • Удалить ~/Library/Developer/Xcode/DerivedData/*
  • Удалить ~/Library/Developer/Xcode/IOS DeviceSupport/*
  • Установите последнюю версию OS X El Capitan Update 10.11.4

но все, что не помогло. Все еще не может ни p ни po строк в отладчике.

У меня все еще есть старый Xcode 6 на моем Mac (переименован и убран перед установкой Xcode 7, а затем снова вставлен в/Приложения). И это все еще работает, я могу ввести «po someString» в отладчик, и он печатает строку в журнале отладки.Но Xcode 7 ... это не распространяется

Я нашел обходной путь для локальных переменных (даже если эта проблема отличается) здесь:
http://lists.apple.com/archives/xcode-users/2014/May/msg00088.html
Ctrl щелкните на переменной в списке локальных переменных и выбрать «Печать»
Печатное описание someString:
ipad

, который помогает немного, но не может печатать более сложные команды.

Смежные вопросы