Этот класс не является ключевым значением, совместимым с кодированием для ключевого представления

Я очень новичок в xcode... a приложение (простой калькулятор) работает неплохо (на симуляторе и устройстве). Когда я устанавливаю основной интерфейс в сводные параметры из Целевой, я получаю следующую ошибку при запуске симулятора:

2012-04-14 12: 17: 27.123 CalcTest [27550: f803] * Прекращение действия приложения исключить исключение "NSUnknownKeyException",

Причина: '[<UIApplication 0x6a14650> setValue:forUndefinedKey:]: этот класс не ключевое значение, соответствующее кодированию для ключевого калькулятора. Экран.

* Первый стек вызовов броска: (0x12db022 0x18f8cd6 0x12daee1 0xcc2022 0xc33f6b 0xc33edb 0xc4ed50 0x53671a 0x12dcdea 0x12467f1 0x53526e 0x536eb7 0x313ce1 0x313ff8 0x31317f 0x322183 0x322c38 0x316634 0x27fcef5 0x12af195 0x1213ff2 0x12128da 0x1211d84 0x1211c9b 0x312c65 0x314626 0x1bad 0x1b15 0x1) завершение вызова Исключение (lldb)

чтобы найти проблему, я начал новый проект на основе представления.

Запустите пустой новый проект на симуляторе → works,

Но когда я установил основной интерфейс, в ViewController, в summary → сбой симулятора с помощью

2012-04-14 12: 11:17.492 crash [27494: f803] * Завершение приложения из-за неотображения исключение "NSUnknownKeyException", причина:

'[<UIApplication 0x6a6f4b0> setValue:forUndefinedKey:]: этот класс а не ключевое значение, совместимое с кодированием для ключевого представления. '     * Первый стек вызовов броска:

(0x13c7022 0x1558cd6 0x13c6ee1 0x9bf022 0x930f6b 0x930edb 0x94bd50 0x23371a 0x13c8dea 0x13327f1 0x23226e 0x233eb7 0x10ce1 0x10ff8 0x1017f 0x1f183 0x1fc38 0x13634 0x12b1ef5 0x139b195 0x12ffff2 0x12fe8da 0x12fdd84 0x12fdc9b 0xfc65 0x11626 0x1d4d 0x1cb5) завершение вызова выбрасывание исключения

существует ли решение задачи?

47
14 апр. '12 в 13:27
источник поделиться
7 ответов

Если у вас есть элемент управления в файле nib (файл xib), который связан с свойством (IBOutlet) или методом (IBAction) в вашем контроллере представления, и вы либо удалили, либо переименовали свойство или метод, t найти его, потому что он был переименован и, следовательно, сбой.

В вашем случае вы установили свойство Main Interface проекта в ViewController.nib. Это проблема, потому что только перья, которые должны использоваться в качестве основного интерфейса, должны иметь UIWindows в них, а File Owner в этом nib должен быть установлен в AppDelegate. UIWindow в nib должен быть связан с свойством окна File Owner (AppDelegate). Поскольку вы устанавливаете это с помощью ножа без признаков, которые искали во время выполнения, он дает вам эту ошибку.

Решение состоит в том, чтобы оставить основной интерфейс пустым, так как вам больше не нужно настраивать UIWindows вручную.

88
14 апр. '12 в 13:40
источник

Связанные вопросы


Похожие вопросы

У вас была такая же проблема, и она исправила ее с помощью элементов управления Control-Clicking в файле xib, чтобы увидеть ссылки на Outlets. Оказалось, что некоторые из элементов управления все еще ссылаются на более старые имена и вызывают эту ошибку.

12
15 авг. '13 в 23:13
источник

если вы получите сообщение, похожее на:

  • Завершение приложения из-за неперехваченного исключения "NSUnknownKeyException", причина:

'[setValue: forUndefinedKey:]: этот класс не является ключевым значением, совместимым с кодировкой для ключа

нажмите на кнопку добавления (+) в левом нижнем углу области навигации BreakPoint, выберите "добавить точку останова исключения", поскольку она сбой из-за "NSUnknownKeyException" и выберите "Все". Запустите программу. Программа останавливается при первом исключении.

5
01 июля '13 в 19:54
источник

попробуйте это, выберите "Владелец файла", затем нажмите "Инспектор подключения" (вверху справа вверху), вы увидите все розетки. Посмотрите на любой знак, подобный этому (!), Вы найдете его на маленьком круге, который указывает отсутствующий выход, все, что вам нужно сделать, это правильно соединить или удалить выход.

4
06 янв. '15 в 9:00
источник

Попробуйте это,

Перейти к Target = > Сформировать фазы = > Скомпилировать источники

Затем включите 'calculatorScreen.m'

3
23 янв. '13 в 10:43
источник

У меня была та же проблема. В моем случае я переименовал текстовую метку в файле .h. Поэтому в моем файле main.storyboard было много ссылок на этот ярлык. Как только я удалил старую ссылку, мой код начал работать.

1
11 авг. '15 в 0:02
источник

Пожалуйста, проверьте целевое членство выберите первый вариант. Это может помочь другим.

0
04 июля '15 в 10:10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос