2016-07-07 5 views
2

Я переименовал класс, который имел выходное соединение с меткой mainLabel в файле раскадровки. Когда я запускаю свою программу, он сбой и дает мне ошибку: «этот класс не является ключевым значением, совместимым с кодировкой для ключевого mainLabel».Класс переименования вызывает соединение IBOutlet с ошибкой

Другие ответы SO показали, что это вызвано плохим выходным соединением, поэтому я удалил соединение и удалил все потерянные концы. При попытке восстановить ярлык к розетке в моем коде, я получаю сообщение об ошибке Не удалось вставить новое соединение на выходе:Не удалось найти какую-либо информацию для класса с именем CourseTableViewCell

Другие SO ответы предоставили решения, которые я попробовал и не работали в том числе:

  • Удаления ссылки на файл и повторно добавить его
  • очистки проекта
  • Удаления производных папок данных
  • удалить метку и заново добавить его
  • перетаскивания из кода раскадровки, а не наоборот

Я убедился, что правильное имя файла было указано в инспекторе идентичности, под «Пользовательский классом ». Если у кого-нибудь есть другие идеи, пожалуйста, дайте мне знать!

При необходимости я могу предоставить дополнительную информацию.

+0

Вы обновили пользовательское свойство класса для ячейки в раскадровке, чтобы отразить новое имя класса. – Paulw11

+0

@ Paulw11 Да, я обязательно сделал это. – Lahav

+1

Я нахожу, что помощник может быть трудно несколько раз. Вы можете просто добавить @IBOutlet в исходный файл вручную, а затем перетащить с «новой ссылочной розетки» на объект в навигаторе в Interface Builder, и должна появиться розетка. – Paulw11

ответ

2

Следующие шаги - это то, что вам нужно сделать, чтобы найти существующие объекты IBOutlet/IBAction и объекты. Будь то label, button и т. Д. И как его удалить.

  1. Открыть Main.storyboard. Document outline window должен быть виден по умолчанию слева от вашего окна раскадровки. Если нет, щелкните значок слева от окна раскадровки, рядом с View As: iPhone 7.
  2. Выберите объект в storyboard, его легче найти, а затем выбрать его из document outline из storyboard.
  3. Открыть Utility window, если оно еще не открыто на самой правой стороне. Используйте горячую клавишу Cmd-Option-0 (command-option-zero), чтобы открыть/закрыть окно утилиты.
  4. Откройте инспектор подключения, щелкнув по значку right arrow (верхний правый значок). Удалите все нежелательные IBOutlet/IBAction или любое другое соединение, которое вы хотите удалить, щелкнув значок x рядом с соединением.
  5. Восстановите соединение. Вы также можете перетащить прямо с circle рядом с element в connection window для конкретного object. Иначе добавьте соединение так, как вы делали.

Что касается файла класса и другого файла кодирования. Вы можете просто прокомментировать строки, которые ранее имели IBAction или IBOutlet. И повторно введите одну и ту же строку вручную (не cut and paste). Добавьте обратно соединение от storyboard, и вам должно быть хорошо. Не забудьте удалить строки, которые вы прокомментировали, которые вам больше не нужны.