Эта ошибка сводила меня с ума, так как я начал использовать Xcode (4.6.3). Всякий раз, когда я пытаюсь связать элемент раскадровки с моим кодом, я получаю сообщение об ошибке:
Не удалось найти информацию для класса с именем ViewController.
Это происходит и с пользовательскими классами. Я пробовал такие методы, как:
- Удаление данных делегата.
- Удаление и повторное добавление классов.
- Перезапуск Xcode.
- Переустановка Xcode.
Я не могу ctrl-перетаскивать, чтобы создавать соединения в любом из моих проектов, независимо от того, какой класс. Та же проблема возникает с совершенно новым шаблоном приложения. Если я наберу код вручную, а затем Ctrl-drag, я могу создать работающее соединение, но не могу добавить его автоматически. Ничто из того, что я смог найти в Интернете, не помогло. Есть указатели?
NSLog()
кviewDidLoad:
Ответы:
Что решило эту проблему для меня, так это удаление класса из проекта.
шаги:
Это, кажется, заставляет XCode связать класс обратно в раскадровку.
Примечание: для меня не сработало следующее:
Я думаю, что это ошибка со стороны Apple
источник
В случае, если кто-то все еще разочарован этим, есть способ заставить все работать.
То, что я делаю, - это ввод розетки в свой класс, например:,
@IBOutlet weak var someView: UIView!
и перетаскивание из кода в представление в IB или раскадровке. После этого я могу перетаскивать из IB / Storyboard в свой класс для установления соединений, помощники редакторов распознают класс в «Автоматическом» и т. Д.Работает каждый раз.
источник
Для меня удаление их из целевого членства в правом столбце и добавление их снова сделало свое дело
источник
Иногда Xcode делает это из-за того, что VC не ссылается на файл класса. Простое решение для этого:
написать свойство вручную, как указано.
Это создаст пустой знак ссылки перед @IBOutlet , откройте ваш проект в помощнике редактора, затем нажмите знак ссылки и перетащите в представление, к которому вы хотите подключиться (я подключился к TableView). и это все. Наслаждайтесь счастливым кодированием !!!
источник
У меня только была эта проблема в апреле 2017 года с Xcode 8
Просто создайте розетку с помощью кода и компилируйте ее. например:
Вы должны любить Xcode ...
Редактировать: Все еще происходит в Xcode 9
источник
следующие шаги работают для меня, надеюсь, что это работает и для вас
1- Вам необходимо заново открыть проект после закрытия Xcode.
2 - дождаться индексации файлов проекта
3- Проверьте, работает ли он или нет
4- Если все еще не работает, выполните шаг 5, если не рад за вас :)
5- Очистить и построить цель вашего проекта
источник
Я перепробовал все, и это не сработало, поэтому для меня то, что сработало, это:
Все мои контроллеры представления не распознавались, поэтому удаление всех файлов и повторное добавление не было возможным, так как это большой проект.
источник
Для меня сработало следующее:
Выполните «clean» и «clean build folder» (нажмите «option» в меню Product, чтобы получить команду «clean build folder»
Стоп Xcode
В терминале перейдите в папку производных данных:
(/ Users // Library / Developer / Xcode / DerivedData)
Удалите каталог производных данных для вашего проекта.
Волна мертвого цыпленка в воздухе
Запустить Xcode
источник
Я должен был сделать комбинацию из пары ответов:
(Нажмите желтую кнопку в левом верхнем углу контроллера представления в раскадровке -> перейдите к инспектору идентификации (опция + команда + 3) -> удалите имя пользовательского класса вверху)
(Щелкните правой кнопкой мыши файл -> удалить -> удалить ссылку)
(Щелкните правой кнопкой мыши папку, в которой находился файл -> «Добавить файл в [проект]»)
источник
Если люди попробуют описанное выше, и все еще не работает, странная уловка, которая сработала для меня, заключалась в добавлении выхода в пробел. Это работает, если нет других строк непосредственно над или под добавляемой вами строкой. Странно, но это сработало!
источник
Для меня работало то, что вместо перетаскивания соединения с кнопки на код было:
после того, как я связал свой код таким образом, после этого он работал нормально.
источник
Оставайтесь на цели!
Я добавлял новый класс с Xib, и я начал видеть эту проблему, и я провел хорошее время, просматривая ответы здесь и выясняя, имеет ли что-нибудь из этого значение.
Как это происходит, у меня есть несколько целей в моей рабочей области, и часто мне приходится переключаться между ними.
Оказывается, добавление новых файлов приведет к началу переиндексации в Xcode. Но если вы указываете на неправильную цель, тогда индексация, скорее всего, не имеет смысла, и во время перетаскивания для подключения Xcode не сможет найти ваш класс.
Коротко
Шаг 1.
Убедитесь, что у вас установлен правильный целевой набор, чтобы индексирование имело смысл.
источник
Это сработало для меня:
(нажмите и удерживайте клавишу «Опции» и перейдите в меню « Продукт », чтобы получить к нему доступ.
С другой стороны, я не уверен, помогло ли это, но я также удалил Производные данные перед выполнением вышеупомянутых шагов (предпочтения XCode> Местоположения)
источник
Выберите ViewController в storyBoard, удалите текущее значение на правой панели / «Класс клиента» / «Класс», затем повторно добавьте класс управления (тип: «SampleViewController» ...), введите. -> Это работает для меня
источник
Я попробовал все эти ответы, проблема для меня была связана с тем, что Xcode не смог проиндексировать файлы. Я исправил это, просто выйдя из Xcode и снова открыв проект. Конечно, я сделал это, попробовав все вышеперечисленные решения: p
источник
Product> Clean (Command - Shift - K) исправил это для меня!
источник
Это самый легкий шаг, который я сделал, чтобы решить эту проблему.
источник
Как показывает мой опыт тестирования, если вы удалите класс, который был связан с XCode, и затем добавите файл снова, то эта проблема возникнет.
источник
Обычно, когда это происходит со мной, я просто еще не сохранил код для класса. Просто перейдите к коду и нажмите cmd + s, и это часто решает проблему правильно.
источник
Просто нужно почистить и пересобрать проект.
источник
Ни один из вышеперечисленных шагов не помог мне, но я думаю, что, возможно, обнаружил проблему. По крайней мере, это то, что сработало для меня, и это не ошибка в XCode.
Когда в редакторе помощника посмотрите на верхнюю часть окна, в котором есть код для вашего viewController. Третий вариант справа, вероятно, говорит «Ручной», но он должен сказать «Автоматический». Как только я изменил это, проблема была решена!
источник
У меня была похожая проблема: «Не удалось найти класс с именем ...», и причина была глупой с моей стороны, как только я понял это. Убедитесь, что вы не перетаскиваете из элемента в интерфейс - убедитесь, что он перетаскивается в сам класс
источник
Я пытался ВСЕ!
Убедитесь, что имя класса вашего UIViewController не содержит слова «Test»
Отчет об ошибке отправлен.
источник
Я попытался бы переделать файлы .m и .h и дать им оригинальное имя, а не общее, как «ViewController». Попробуйте что-то еще в соответствии с тем, что вы хотите, чтобы этот файл делал, и заканчивая View Controller (то есть "PizzaDecoraterViewController")
Затем выберите ViewController, который вы хотите подключить к этим файлам. Убедитесь, что вы выбрали ViewController, а не просто объект внутри. Нажмите на черную полосу внизу (та, которая имеет значки «Первый ответчик» и «Выход»). Весь ViewController должен выделяться синим цветом. Затем перейдите в раздел Custom Class в Identity Inspector, и вы увидите серое «UIViewController» в первом поле. В этом поле введите имя файла .h или .m, к которому вы хотите подключиться (начните вводить PizzaDecorator ... и он должен выполнить небольшую процедуру автозаполнения). Затем нажмите ENTER.
Когда вы открываете Ассистент редактора, убедитесь, что файл, который вы пытаетесь перетащить в нужное место, на самом деле является правильным файлом.
Если вы сделали все как сказано выше, то это должно сработать.
источник
Как я прокомментировал ответ @ ChrisHarrison, эти вещи у меня не сработали, но, удалив производные данные, как я получил их на работу, удалив производные данные, как в https://stackoverflow.com/a/16182672/1449799
источник
Удалите файлы (только ссылки) и добавьте файлы снова.
источник
Что ж, в моем случае сработало (это немного странно, но сработало) следующее:
Попробуйте добавить источник данных (например, расширение для ViewController, например UITableViewDataSource). Xcode попытается перезагрузить ViewController. Затем я написал какой-то метод протокола (вначале Xcode не выполнял автозаполнение методов, а выписал его вручную), затем я добавил IBOutlets и, наконец, я удалил источник данных.
Пример:
источник
Для меня представление, для которого я указал пользовательский класс, не может быть скомпилировано конструктором интерфейса. Это было отмечено
@IBDesignable
.Удалите
@IBDesignable
, а затем добавьте мои розетки, а затем пометьте как@IBDesignable
решенную проблему в моем случае.источник
Просто попробуйте удалить производные данные для проекта
источник
просто попробуй это
источник