Xcode 4: Создание UIView XIB, не правильно подключается - PullRequest
84 голосов
/ 15 июля 2011

Я пытаюсь создать перо, содержащее представление, которое будет встроено в TableViewCell.Я создал интерфейс и файлы реализации, ResultCell.h и ResultCell.m.Они стандартные, без изменений, без изменений кода.

Затем я создаю пустой файл XIB и перетаскиваю на него UIView.Затем я нажимаю «Владелец файла» и устанавливаю тип ResultCell.Я щелкаю по представлению и устанавливаю для его класса также ResultCell.

Вот мои проблемы:

  1. При использовании представления Assistant Editor (в котором я живу)файл ResultCell.h не отображается при просмотре файла ResultCell.xib.Я должен принудительно загрузить его, нажав «Автоматически» и выбрав файл.
  2. Когда я перетаскиваю метку в виде, а затем Ctrl + Click и перетаскиваю в .h, чтобы создать выпуск, я получаю этосообщение об ошибке: « Не удалось вставить новое выходное соединение: Не удалось найти информацию о классе с именем ResultCell."

Я попытался создать и заново создать представление,и это просто не работает, и я начал терять терпение.Любая помощь будет очень, очень ценится!

Ответы [ 32 ]

113 голосов
/ 16 ноября 2011

Я попал в подобное состояние только сегодня.Это было очень странно: я мог присоединить любой XIB (новый или существующий) к любому уже существующему классу ViewController в проекте, но я не смог создать новый ViewController и правильно подключить его к любой XIB.Функциональность «помощника» не работала, равно как и функциональность соединения IB-to-headerfile-соединения.

Закрытие проекта и повторное открытие не исправили его.Выход из XCode и перезапуск не помогли.Создание нового проекта и проверка работоспособности работали нормально, что заставило меня поверить, что в каком-то кеше что-то повреждено.

Мое решение

  • Закройте вашproject.
  • Перейдите в папку ~ / Library / Developer / XCode / DerivedData и УДАЛИТЕ все подпапки, ссылающиеся на проект, над которым вы работаете.
  • Откройте ваш проект в XCode.Проблема должна быть решена сейчас.

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

81 голосов
/ 22 июля 2011

Это может не работать для вашей конкретной проблемы, но иногда я получаю эту ошибку при работе с вновь созданными перьями. Удаление и воссоздание перьев и контроллеров представления с теми же именами, что и раньше, не решило проблему, но перезапустил Xcode.

13 голосов
/ 15 марта 2012

У меня была та же проблема. И я попробовал:

  • Перезапуск Xcode
  • Удаление производных данных
  • и многое другое

Ничего из этого не сработало. То, что работало для меня, было просто:

  • Удалить подозрительные файлы классов из Project (просто удалите References, а?)
  • Повторно добавьте их в проект

И готово!

13 голосов
/ 24 августа 2011

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

9 голосов
/ 01 января 2012

Если перезапуск Xcode у вас не работает, я обнаружил, что переключение нового файла .m и возврат в целевое членство работает.

3 голосов
/ 17 сентября 2011

Это помогло мне:

  1. на панели файла проекта (слева) выберите сломанный xib-файл.
  2. Щелкните значок «Владелец файлов» в представлении редактора.
  3. в панели свойств (справа) выберите третью вкладку (вверху)
  4. укажите «Пользовательский класс»

Если вы не видите «панель», пожалуйста, посмотрите в верхнем правом углу окна и включите соответствующие кнопки «Вид». Если вы не видите кнопки «просмотр», нажмите на самую верхнюю правую кнопку капсулы.

2 голосов
/ 13 мая 2012

в XCode перейдите в органайзер, нажмите проект, нажмите удалить производные данные ... чем очистить проект

2 голосов
/ 22 апреля 2012

Я столкнулся с той же проблемой сегодня.Перезапуск XCode не решил проблему для меня.Мне удалось вернуть все в нормальное состояние с помощью опции "Удалить" "Производные данные" проекта , который можно найти в Организатор.Организатор говорит, что «Производные данные включают в себя индекс, выходные данные сборки и журналы».Я думаю, что index или build build вызывали эту проблему.

2 голосов
/ 28 февраля 2012

Я заметил, что файл .m был перемещен в папку en.lproj.

Просто удалите (только для справки) файл .m из Xcode и переместите .m из en.lproj. Добавьте его снова. Это исправит проблему.

Не волнуйтесь, вы вернете все свои соединения.

2 голосов
/ 14 марта 2013

В моем случае это помогло внести «поддельные изменения» (просто пробел) в соответствующий заголовочный файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...