Xcode - Как исправить "NSUnknownKeyException", причина:… этот класс не соответствует значению ключа, кодирующему ошибку "X"?

Я пытаюсь связать UILabel с IBOutlet созданным в моем классе.

Мое приложение падает со следующей ошибкой.

Что это значит?

Как я могу это исправить?

*** Завершение работы приложения из-за необработанного исключения "NSUnknownKeyException", причина: "[<UIViewController 0x6e36ae0> setValue: forUndefinedKey:]: этот класс не соответствует значению ключа, соответствующему кодированию для ключа XXX".

Благодарю.

+1109
21 июн. '10 в 19:57
источник поделиться
66 ответов
  • 1
  • 2
  • 3

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

0
30 нояб. '16 в 22:30
источник

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


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

Я сталкиваюсь с тем же журналом ошибок при работе с моей ячейкой tableview. Я обнаружил, что мои UILabels дублируют реферирующие точки (вы можете проверить это в контролере) как владельцу файла, так и классу ячеек. Все становится хорошо, когда я удаляю ссылку на владельца файла.

0
04 сент. '13 в 6:28
источник

У меня тоже была эта проблема. Я скопировал представление с IBOutlet из одного xib файла в другой файл xib. И хотя я удалил старую ссылку и создал новую ссылку, эта ошибка все еще возникала.

Я решил перезапустить xcode, чтобы исправить эту проблему.

0
21 нояб. '13 в 19:58
источник

Вы не оставили свой объект-подборщик не связанным?

lol 54 ответов, и ни одно из них не является моим решением. Расскажите об общей ошибке.

В моем случае это было потому, что у меня был объект выбора на моем VC и не устанавливал выход и действие для него.

Я часто оставляю кнопки и т.д., когда я просто смотрю, как выглядит макет. Но, похоже, вы не можете сделать это для сборщика.

0
08 авг. '16 в 8:29
источник

Я нашел еще одну возможность, которая может вызвать проблему.

При использовании метода "initWithNibName" с неправильным именем xib это также приведет к подобному сбою.

Например, вы хотите изменить имя файла xib, а затем foget, чтобы изменить имя, используемое в методе "initWithNibName", с тем же именем.

0
22 авг. '13 в 8:31
источник

У меня была та же ошибка в еще одной немного другой форме:

В построителе интерфейса у меня есть контроллер навигации с настраиваемым субконтроллером. Имя этого класса было правильно настроено, однако имя NIB (выберите субконтроллер, перейдите в Attributes Inspector), был установлен неверный файл (в основном, для одной из разных целей). Сброс этого правильного имени файла решил проблему.

0
23 окт. '13 в 12:00
источник
  • 1
  • 2
  • 3

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