Подтвердить что ты не робот

Как я могу решить "NSUnknownKeyException"... setValue: forUndefinedKey:]:... не соответствует ключевому значению кодировки

Хорошо, я постараюсь сделать это как можно скорее. Я хотел UIToolbar над моей клавиатурой, и мне потребовалось некоторое время, чтобы понять это, и я в конце концов это сделал, но когда я попытался добавить функцию к кнопкам previous * next *, и моя программа скоро не скомпилировалась.

Полное сообщение об ошибке можно увидеть здесь:

2012-06-20 05: 36: 55.276 KegCop [79460: fb03] * Завершение приложения из-за неперехваченного исключения "NSUnknownKeyException", причина: "[setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для сделанный ключ.

* Первый стек вызовов броска: (0x134a022 0x1733cd6 0x1349ee1 0xd31022 0xca2f6b 0xca2edb 0xcbdd50 0x5a571a 0x134bdea 0x12b57f1 0x5a426e 0x7adeef 0x7ae03e 0x382d7a 0x382ff8 0x38217f 0x391183 0x385634 0x391c38 0x1f84ef5 0x131e195 0x1282ff2 0x12818da 0x1280d84 0x1280c9b 0x381c65 0x383626 0x2a8d 0x29f5 0x1) terminate называется throwing exception (lldb)

@Абизерн предложил мне прочитать руководство Apple Doc on Key для кодирования значений. В любом случае это супер поздно, или супер рано, но вы смотрите на него. Обновленный проект можно найти здесь: https://github.com/ipatch/KegCop

Просто скачайте zip и попробуйте построить, и вы увидите, о чем я говорю. Вероятно, ошибка находится где-то в файле ViewControllerWelcome.m.

4b9b3361

Ответ 1

Посмотрите в свою раскадровку или xib (в зависимости от того, что вы используете) для объекта ViewControllerWelcome. Наиболее вероятным источником этой ошибки является то, что что-то имеет соединение с действием или выходом под названием done, которое не существует в коде для этого класса.

Ответ 2

Самый простой способ проверить это на Ctrl + Click на вашем контроллере в представлении раскадровки и найти что-то в появившемся всплывающем окне с желтой предупреждающей меткой рядом с ним. Просто удалите его, нажав (x) рядом с именем Outlet.

Ответ 3

Если вы используете раскадровку, просто нажмите на каждый ViewController и выберите их инспектор соединений. Проверьте, не выходит ли какой-либо восклицательный знак (для потерянных соединений).

Удалите их правильно. Затем запустите проект еще раз.

Ответ 4

Я столкнулся с той же проблемой, я использовал xib для viewcontroller, но потом я удалил его. Однако в коде соединение по-прежнему получает соединения с удаленным xib. Таким образом, способ передвижения - создать новый xib для viewcontroller. Тогда проблема решена.

Ответ 5

В моем случае это был какой-то странный кеш на xcode, даже при всех удаленных ссылках на IBOutlets все еще делалось это сбоем. IBOutlets указывали на более старую версию моего файла, поэтому не удаляли и не добавляли файлы обратно или не удаляли все реферирующие точки из моего nib...

SOLUTION: закрытие xcode сделал трюк, также возможно очистка /deepCleaning проекта.

Ответ 6

В моей ситуации я добавил -all_load в "Другие флаги компоновщика", чтобы предотвратить исключение Xcode моего двоичного кода библиотеки.