Ответ 1
В этой статье очень кратко говорится об этом.
В основном, в нем говорится, что вы можете посмотреть в файлах Xib, чтобы быстрее узнать, какие привязки вы установили в своем приложении.
Надеюсь, что это поможет!
Я новичок в Cocoa, и я работаю над примерами в книге Hillegass book 'Cocoa для Mac OS-X. Было несколько случаев, когда образец приложения, с которым я работал, запускается, и я получаю сообщение, например:
2009-03-11 00: 39: 19.167 CarLot [7517: 10b] Невозможно создать NSData из объекта < _NSControllerObjectProxy: 0x188bf0 > класса _NSControllerObjectProxy
Единственный способ, который я нашел для решения такой проблемы, - это кропотливо пройти все привязки и атрибуты в построителе интерфейса, чтобы увидеть, где я пропустил какую-то конфигурацию, - что все требует времени!
Есть ли более эффективный способ определить, что проблема из сообщения об ошибке? Существуют ли какие-либо методы отладки, которые вы можете использовать для отслеживания таких проблем?
В этой статье очень кратко говорится об этом.
В основном, в нем говорится, что вы можете посмотреть в файлах Xib, чтобы быстрее узнать, какие привязки вы установили в своем приложении.
Надеюсь, что это поможет!
Там есть замечательная статья на сайте Apple Dev по устранению неполадок.
Ключ от руки? Там параметр под названием NSBindingDebugLogLevel
, который вы можете использовать для получения отладочной информации.
Два способа установить его:
1 - Постоянно в настройках по умолчанию
defaults write com.yourdomain.yourapplication NSBindingDebugLogLevel 1
2 - передайте его как параметр при отладке
path/to/your/app -NSBindingDebugLogLevel 1
Я не уверен, что есть способ получить сводку привязок и атрибутов, которые вы настроили, кроме самого Interface Builder. Насколько я знаю, это единственный gui, который показывает эту информацию. Вы можете попробовать запустить приложение в отладчике и взломать исключения (- [NSException raise]), чтобы узнать, можете ли вы хотя бы отследить, какой объект дает вам эту ошибку, что может помочь вам найти плохое соединение в IB.
Если ваше приложение достаточно мало и быстро работает, и вы только начинаете использовать IB и привязки, я бы предложил вам сделать одно соединение и протестировать его, чтобы увидеть, работает ли оно, а затем перейти к следующему. Таким образом, вы узнаете, какое соединение или атрибут вызывает проблемы.
Я надеюсь, что у кого-то есть лучший ответ, чем этот, но насколько я знаю, нет инструмента для проверки проблем соединения IB с pin-point.
Что делать, если вы выполняете привязки программным способом, а не выполняете его в интерфейсе?
Для этого вам нужно использовать этот метод NSObject:
- (void)bind:(NSString *)binding toObject:(id)observableController withKeyPath:(NSString *)keyPath options:(NSDictionary *)options
Сначала я не заметил, что если вы посмотрите на инспектора соединений для объекта, он отобразит хороший список всего, на что он привязан, и если вы наведите курсор на элемент, он выделит соответствующий элемент.
Это хорошо, если вы снова привязали что-то к Столбец таблицы.