Исключение для выходных соединений в Xcode 4

Я создал новый проект iPhone в Xcode 4 и добавил несколько файлов (xib и классы) из старого проекта, созданного в Xcode 3, который отлично работает.

Проект компилируется нормально, без ошибок и предупреждений. Однако, когда я пытаюсь запустить его, я получаю печально известную причину «NSUnknownKeyException: класс не соответствует кодированию ключевого значения для ключевой ошибки dateOutlet».

Когда я открыл файл XIB, подключение к dateOutlet казалось просто отличным, но я все равно удалил и снова подключился, чтобы быть в безопасности. В следующий раз, когда я запустил его, я получил ту же ошибку, но на другой розетке, что заставило меня подумать, что что-то пошло не так с соединениями, и мне просто нужно было снова подключить их. Однако я заметил, что иногда, когда я снова подключал розетку, она давала сбой на розетке, которую я уже «починил». После долгих возни я пришел к выводу, что переподключение на самом деле ничего не исправляет, просто когда я вношу изменения в xib, следующая неисправная розетка будет выбрана случайным образом (по крайней мере, так кажется).

Кто-нибудь сталкивался с этой проблемой? Я много гуглил, но никто, похоже, не сталкивался с таким точным поведением. Я попытался запустить проект на 3 разных машинах с тем же результатом.


person pajevic    schedule 08.04.2011    source источник
comment
Пройдитесь по методу инициализации и найдите точную строку, которая выдает исключение. Просто разместите код здесь... Это самый простой способ найти решение.   -  person tamasgal    schedule 08.04.2011
comment
Это происходит, когда он загружается из пера в строке int retVal = UIApplicationMain(argc, argv, nil, nil); метода main.   -  person pajevic    schedule 08.04.2011


Ответы (2)


Свойство класса объекта должно быть правильно установлено в файле xib,

например, если вы подключаете iboutlet uiimageview к объекту imageview в xib, перекрестно проверьте, что свойство класса этого объекта (открывается нажатием команды + 4) в xib установлено в UiImageview

person Rajat Talwar    schedule 08.04.2011
comment
Привет Раджат. Извините за поздний ответ, но у нас были редкие выходные с хорошей погодой, поэтому я не работал :) В любом случае, я проверил все классы, и они верны. Как я уже говорил в своем вопросе, xib отлично работал в другом проекте (в Xcode 3); на самом деле приложение есть даже в App Store. - person pajevic; 11.04.2011

Хорошо, я нашел источник проблемы. Кажется, что в Target для приложения «Основной интерфейс» был установлен на мой MainView, который является экземпляром UIView. Я изменил его на MainWindow (сгенерированный Xcode), и все заработало нормально.

person pajevic    schedule 12.04.2011