2016-05-25 5 views
1

У меня есть большой базовый проект для iOS, выполненный в Swift. Теперь я пытаюсь создать другую версию клиента, создав новые цели:~ этот класс не является ключевым значением, совместимым с кодировкой для ключа при создании нового целевого

  • BaseProject (работает нормально, если я не изменить его название)
  • Client1 (NSUnknownKeyException после стартового экрана).

Базовый проект работает просто отлично. Но я получаю следующее NSUnknownKeyException при переходе на новую цель:

Terminating app due to uncaught exception 'NSUnknownKeyException', 
reason: '[<UIViewController 0x135e57c40> setValue:forUndefinedKey:]: 
this class is not key value coding-compliant for the key textConfirmPassword.' 

«textConfirmPassword» является ссылкой текстового поля из моего main.storyboard.

  • Я проверил ссылки на розетки, и это, похоже, не является проблемой.
  • Я проверил целевое членство в текстовом поле.
  • Я воссоздал выход.
  • Я удалил ссылку, создал текстовое поле с жестким кодом, которое не отображается на раскадровке, чтобы код был скомпилирован. Исключение было отправлено в другое текстовое поле (textEmail).

Прежде чем делать это, я создал образец проекта, используя изображение и ссылочную метку. Версии отлично работали.

+0

Если вы абсолютно уверены, что нет разъединенных выходов (проверено через инспектор соединений), тогда просто очистка, а затем выход и перезапуск Xcode исправили это для меня несколько раз в прошлом. Удивительно, сколько проблем с Xcode можно решить, перезагрузив его. – Gruntcakes

+0

Я сделал это уже. Я воссоздал все подключения и перезапустил xcode. Нет такой удачи. – CBortoli

ответ

2

Я нашел, что не так. Что-то действительно простое, что я не могу поверить, что мне потребовалось столько времени, чтобы понять. На первом контроллере просмотра был выбран модуль (когда он не должен был иметь). По этой причине всякий раз, когда я запускал другую цель, она не находила элементы представления.

+0

Вы точно описали мою проблему (сделали новую цель, старую строю, новый сбой с этим исключением, но это не выход (я могу отключить его, и он просто сработает на следующей розетке). Я могу " т. е. выяснить, что вы имеете в виду. Что такое «контроллер первого вида» (корень?) Что такое «был выбран модуль» (целевое членство?) – SimplGy

+0

У меня была такая же точная проблема. Спасибо за указание. @ SimplGy, когда вы выбираете файл реализации, в Xcode вы можете найти раздел «Целевое членство» в Инспекторе файлов. Вот где ваша цель должна быть включена. – Franklin