Я пытаюсь создать перо, содержащее представление, которое будет встроено в TableViewCell. Я создал файлы интерфейса и реализации, ResultCell.h
и ResultCell.m
. Они стандартные, готовые, без изменений кода.
Затем я создаю пустой файл XIB и перетаскиваю на него UIView. Затем я нажимаю «Владелец файла» и устанавливаю тип ResultCell
. Я нажимаю на представление и устанавливаю его класс также ResultCell
.
Вот проблемы, которые у меня есть:
- При использовании вида Assistant Editor (в котором я живу)
ResultCell.h
файл не отображается, когда я просматриваю файл ResultCell.xib. Мне нужно заставить его загрузиться, нажав «Автоматически» и выбрав файл. - Когда я перетаскиваю метку в представление, а затем нажимаю Ctrl + щелчок и перетаскиваю в .h для создания выхода, я получаю следующее сообщение об ошибке: « Не удалось вставить новое подключение к розетке: не удалось найти никакой информации о классе с именем ResultCell. "
Я пробовал создавать и воссоздавать представление, но оно просто не работает, и я начал терять терпение. Любая помощь будет очень, очень признательна!
Ответы:
Это может не сработать для вашей конкретной проблемы, но иногда я получаю эту ошибку при работе с вновь созданными перьями. Удаление и воссоздание перьев и контроллеров представления с теми же именами, что и раньше, не решило проблему, но перезапуск Xcode помог.
источник
~/Library/Developer/Xcode/DerivedData
)Я попал в подобное состояние только сегодня. Это было очень странно: я мог присоединить любой XIB (новый или существующий) к любому уже существующему классу ViewController в проекте, но я не мог создать новый ViewController и правильно подключить его к любому XIB. Функциональность «помощника» не работала, как и функциональность соединения IB-файла заголовка.
Закрытие проекта и повторное открытие не помогли.
Выход из XCode и перезапуск не исправили.
Создание нового проекта и тестирование функциональности работали нормально, что заставило меня поверить в то, что где-то в каком-то кеше есть что-то поврежденное.
Мое решение
Между прочим, простая полная очистка, похоже, не прояснила ситуацию. Пришлось выбросить производные данные. Я уверен, что попал в эту позицию из-за игр с git, в которые играл, но я понятия не имел, как выйти, потому что даже переключение на более ранние версии git не помогло. (Это также было большим ключом к разгадке того, что сам проект не отслеживал это.)
источник
У меня была эта проблема, и перезапуск Xcode ее не устранил. Я удалил файлы классов из проекта, затем добавил их обратно, и он начал работать.
источник
У меня была такая же проблема. И я попробовал:
Ничего из этого не сработало. Для меня сработало просто:
И готово!
источник
Если перезапуск Xcode у вас не работает, я обнаружил, что переключение нового файла .m обратно в целевое членство работает.
источник
Это помогло мне:
Если вы не видите «панель», взгляните на верхний правый угол окна и включите соответствующие кнопки «просмотра». Если вы не видите кнопки «Просмотр», нажмите на самую верхнюю правую кнопку капсулы.
источник
Я заметил, что файл .m был перемещен в папку en.lproj.
Просто удалите (только для справки) файл .m из Xcode и переместите .m из en.lproj. Добавьте его снова, это решит проблему.
Не волнуйтесь, вы восстановите все свои связи.
источник
Сегодня я столкнулся с той же проблемой. Перезапуск XCode не решил проблему. Я был в состоянии получить вещи в нормальное состояние с помощью «Удалить» вариант «Derived данных» от проекта , который можно найти под Организатора . Организатор сообщает, что «Производные данные включают индекс, выходные данные построения и журналы». Я предполагаю, что причиной этой проблемы был либо вывод индекса, либо вывод построения .
источник
в XCode перейдите в органайзер, щелкните проект, щелкните удалить производные данные ... чем очистить проект
источник
В моем случае это помогло внести «фальшивое изменение» (просто пробел) в соответствующий заголовочный файл.
источник
UITableViewCell
UIView
на пустой холст, вы должны перетаскиватьUITableViewCell
Каждый раз, когда вы хотите загрузить новую ячейку, звоните:
[[NSBundle mainBundle] loadNibNamed:nibName owner:controllerWithOutletToCell options:nil]
после загрузки используйте ячейку и установите для параметра ivar / output значение nil, готовность к следующей загрузке
есть и другие способы, но это обычное дело
источник
Возможно, у меня сработало вот это .. (Xcode v4.5)
Это не сработало
Я пытался управлять перетаскиванием в определение интерфейса моего .h
@interface SearchViewController : UIViewController
@end
Это сработало (возможно, так оно и должно было работать, я этого раньше не знал). Смотрите открытые и закрывающие скобки. Управляйте перетаскиванием после закрытой скобки.
@interface SearchViewController : UIViewController { } @end
источник
У меня была аналогичная проблема с проектом, написанным на Swift.
Что сработало для меня, так это настройка IBOutlet в таком коде
@IBOutlet var foo: UIView?
а затем подключите его к Интерфейсному Разработчику, перетащив его на маленький кружок, появившийся рядом со строкой кода.
источник
Ни один из вышеперечисленных обходных путей не помог мне решить проблему с соединителем, поэтому я отложил свой домашний проект, пока не наткнулся на следующий поток stackoverflow:
https://stackoverflow.com/a/15873770/2846800
Я работал над большим проектом в предыдущей версии XCode и отключил индексацию. После повторного включения индексации моя проблема теперь решена:
defaults delete com.apple.dt.XCode IDEIndexDisable
Теперь я могу использовать функции D&D Interface Builder. Надеюсь, это поможет другим ...
источник
Эта проблема, похоже, связана с ошибкой Xcode, которая возникает в основном, когда вы заменяете файл новым файлом с тем же именем. Xcode, кажется, сохраняет ссылку на более старый файл с тем же именем.
Во всяком случае, способ исправить это выглядит следующим образом:
(Только шаги 1 и 2 исправили это для меня.)
источник
Если вы скопировали файлы из другого проекта, просто убедитесь, что вы установили флажок «Добавить в цели».
источник
Переименование файлов классов может отсоединить их от XIB. Этот ответ помог мне обнаружить это:
Ctrl-перетаскивание от кнопки к методу не работает. Xcode / Интерфейсный разработчик
Убедитесь, что ваш настраиваемый класс правильно установлен в Identity Inspector.
источник
Аналогичный симптом, но другая причина.
По-видимому, я нажал клавишу возврата, когда фокус был на представлении помощника, потому что одна из стандартных строк комментариев шаблона файла пошла с // на /, что привело к тому, что файл не компилировался.
Исправление комментария позволило SDK проанализировать файл, распознать его как UIViewController и добавить в розетку.
ТАК - если у вас есть эта проблема, выполните сборку или проанализируйте, чтобы увидеть, есть ли ошибки, которые необходимо исправить в файле .h вашего контроллера представления. ЗАТЕМ попробуйте другие решения.
источник
Это может быть старая тема, но на всякий случай, если у кого-то возникнет такая же проблема в будущем, попробуйте удалить связанные файлы .xib, .h и .m и создать новые. Для меня UIViewController в моем файле .h не был фиолетовым, и даже обратный интервал и его ввод не помогли.
источник
Просто поставьте черту между @implementation и @synthesize. Большинство ответов здесь имеют это общее. Это сработало для меня
@implementation @synthesize
источник
Я просто попробовал все здесь, и ничего не получилось (с использованием Developer Preview для Xcode 5).
Единственное, что у меня сработало, это поместить эту неполную строку в мой интерфейсный файл:
@property (nonatomic, weak)
По какой-то причине добавление выходов и действий путем перетаскивания из .xib после этого работало нормально.
источник
Для меня очистка или удаление DerivedData решили проблему.
Я несколько раз пытался удалить и воссоздать свой класс UIViewController, и проблема возникала снова и снова.
Затем я воссоздал класс UIViewController и дал ему другое имя. Это решило проблему для меня.
источник
У меня была эта проблема, и я нашел решение, не указанное выше.
В моем случае я мог видеть, что что-то не так в файле класса .h, потому что мой пользовательский контроллер представления не распознал класс: UIViewController (он был черным, а не фиолетовым). Все другие настраиваемые контроллеры представления имели: UIViewController фиолетового цвета.
в моем случае и, возможно, в вашем, мне нужно было добавить класс в раскрывающийся список целей / этапов сборки / компиляции. Необходимо добавить .m. Все остальные .m были там, но не этот.
Как только я добавил его,: UIViewController появился фиолетовым цветом, и все работало нормально.
источник
В моем случае у меня есть несколько проектов с некоторыми другими зависимостями. Я попытался решить эту проблему, удалив производные данные или перезапустив XCode, но это не сработало. В итоге я попробовал следующий метод, и он работает:
Перейдите в target> Build Target Architectures Only> и установите для Debug и Release значение NO.
Установите это для всех проектов в рабочей области и перекомпилируйте, чтобы убедиться, что нет других ошибок. Может быть, не имеет смысла, но как-то это удалось. Во время компиляции у меня были другие проблемы, такие как ошибки компоновщика и не найденные символы.
источник
Для файла * .m этого представления класса откройте «Показать файловый инспектор» и снимите флажок «Целевое членство» для этого проекта, затем выполните Очистку (меню Продукт-> Очистить) и снова установите флажок «Целевое членство» для этого проекта.
источник
Используя Swift, у меня была аналогичная проблема. Я обнаружил, что комментарии были для меня частью проблемы.
Я воспользовался контроллером представления по умолчанию, поработал с ним, а затем создал второй контроллер представления, скопировав весь первый, убрав его до viewDidLoad () и переименовав класс в TestViewController. Сборки работали, код выполнен. Все было хорошо.
Когда я пытался перетащить UITextField, чтобы создать выход, он меня не пустил. Я заметил, что в моих комментариях по-прежнему написано «ViewController.swift», поэтому я изменил текст комментария на «TestViewController.swift» и перестроил. Я смог подключить розетку!
Интересно, произошло ли то, что индексатор читал комментарии, а также имена классов и почему-то запутался.
источник
Надеюсь, это поможет кому-то там.
Мне просто пришлось удалить папку с производными данными. Вам нужно нажать Окно -> Организатор -> Проекты -> Удалить производные данные.
И ПЕРЕЗАГРУЗИТЕ XCODE.
Тебе должно быть хорошо!
источник
Новый класс, не являющийся частью «TARGET», вероятно, является основной причиной этого, как указано в некоторых из этих ответов.
При создании нового класса какао по умолчанию опция добавления нового класса в цель по умолчанию отмечена, но если по какой-либо причине это не должно быть проверено, когда вы нажимаете «Сохранить», у вас будет эта проблема.
Любой из этих обходных путей, которые добавляют новый класс к цели приложения, будет работать для решения проблемы, и это то, что объединяет все эти «исправления».
Я думаю, что XCode, вероятно, имеет некоторые ошибки, из-за которых новый файл по умолчанию НЕ добавляется в основную цель приложения. Исправление сводится к добавлению вашего `` сломанного '' класса в основную TARGET.
источник
В XCode 7.1 добавление коннектора в другой точке исходного файла работало. Ошибка, которую я получал, относилась к одной из моих переменных, как если бы это был класс (не имело никакого смысла). Ошибка перестала возникать, когда я добавил коннектор под этой переменной, а не над ней.
источник
Существует также другая причина проблемы ... если вы создали новый файл класса какао с шаблоном, отличным от ios ... я могу случиться ...
Решением было бы удалить его и воссоздать с правильным шаблоном.
источник