Я просто вышел из Xcode, а затем снова открыл его. компилятор перезагрузит все файлы и может обнаружить искомый файл
Джейн Курица
Убедитесь, что у вас нет неподключенной розетки в файле контроллера представления. Я обнаружил, что я сделал. После того, как я удалил его, у меня не было проблем.
Кекс
Для меня ни одно из вышеперечисленных решений не сработало. Мне пришлось удалить контроллер представления, который я скопировал и снова вставил в свою раскадровку, чтобы использовать его снова. Затем я перетащил новый контроллер представления в раскадровку, и все стало хорошо :). Я надеюсь, что это может помочь кому-то с той же проблемой.
Арслан Салим
Это ошибка в XCode, и я не знаю, почему они не исправляют это. Вы должны закрыть XCode и снова открыть. Когда вы попытаетесь снова поставить розетки, но на этот раз оставьте кучу ENTERS, прежде чем сделать это. Вам не нужно ничего удалять или тратить свое время на другие варианты ... Это решит ваши проблемы.
Mavesonzini
Ответы:
692
Вот некоторые вещи, которые могут это исправить (в порядке возрастания сложности):
Очистить проект ( Продукт> Очистить )
Вставить вручную
@IBOutletweakvar viewName:UIView!// or
@IBActionfunc viewTapped(_ sender:Any){}
и контролировать перетаскивание на него (Измените тип по мере необходимости.) Также посмотрите это .
Полностью закройте Xcode и перезапустите ваш проект.
Удалите папку «Производные данные» (перейдите в XCode> «Установки» > « Местоположения» и нажмите серую стрелку рядом с папкой «Производные данные». Затем удалите папку своего проекта.)
Нажмите «Удалить» в классе, удалите ссылку (не «Переместить в корзину») и добавьте ее снова. (см. этот ответ )
не забудьте удалить класс на контроллере представления, чтобы эти шаги работали
reggie
8
Ни один из этих шагов не работал для меня в Xcode 8.3.2. Мне пришлось «Показать инспектора идентификации»> очистить поле «Класс» (выделите имя пользовательского класса и удалить)> повторно ввести имя класса в поле «Класс». Xcode автоматически заполнил имя класса. Затем я нажал Enter.
PeqNP
Добавьте строку alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'в ~ / .bashrc, чтобы использовать команду purgederiveddataдля очистки одной командой
eskimwier
Я нашел другой способ исправить эту проблему, это случилось со мной, когда я изменил некоторые параметры сборки, чтобы улучшить мою скорость сборки. stackoverflow.com/a/50555888/2952876
Матиас Ван Хоутт
Я настоятельно рекомендую всем вам попробовать мое решение ниже. Хотелось бы знать, что людям приходится перезагружать свои компьютеры из-за часто встречающейся ошибки.
Стивен Пол
134
Или, если ничего из вышеперечисленного не работает, сначала введите имя розетки в файл, @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!а затем щелкните и перетащите от розетки в кончике к переменной, которую вы только что программно создали. Это должно работать без каких-либо хлопот очистки, строительства и удаления чего-либо.
часто более быстрое решение вместо того, чтобы тратить время на очистку, сборку и т. д. спасибо.
Мохониш
1
Очень хорошо, и как только вы сделаете это, автоматически начнет появляться, спасибо.
AmJa
1
Прежде всего, подключите ваш объект XIB к IBoutlets. Затем попытайтесь связать свои ограничения IBOutlets. без этого он всегда будет показывать ошибку.
Чандрамани
Это также может иметь значение, когда вы пытаетесь вставить новую розетку. Для, верхняя часть списка (там, где есть свободное пространство выше) работал; середины списка нет.
Ричард
1
Это должно быть помечено как лучший ответ. Это проще, быстрее и надежнее. Также это работает все время! Хорошая работа и спасибо
@StephenPaul
52
Просто выполните два следующих шага, чтобы избавиться от этой ошибки
Чистый проект с использованием Product> clean
Запустить проект
Теперь попробуйте добавить действие или розетку. Вот и все.
Странно ... эти два простых шага помогли решить проблему и для меня. Поэтому я рекомендую сначала попробовать эти простые шаги :-)
перекрестный код
49
Ни один из советов в лучшем ответе не работал для меня. Сходил с ума. Затем заметил, что Помощник редактора каким-то образом был установлен на Вручную, и я был на ViewController.swift (Interface) вместо файла ViewController.swift.
Поменял что и проблема решена. Немного смущает, но эй, мы все учимся.
Спасатель ответ! Ни один из других ответов не решил это раз и навсегда. Очень жаль, что описание ошибки не дает ни малейшего намека на то, что вы можете оказаться в файле worng. Спасибо. +1 за изображение все прояснилось.
Паулоко
Я заметил нечто довольно похожее, но другое: в верхнем пути, где отображается имя класса, было только имя класса, но отсутствовал начало пути как myProject> appName> controller, а затем класс. Я выбрал другой класс, затем вернулся к проблемному, и все в порядке
claude31
15
Вот шаги, решенные для меня:
Удалить ссылку на имя класса из View (раскадровка / XIB) и сохранить;
Перетаскивание Outlets / Actions вообще не работало, но после того, как я сделал это вручную, все снова заработало.
Джейсон
Это стандартный альтернативный метод создания соединений. В случае действий с переключателями, единственный способ, AFAIK. В раскадровке вы также можете щелкнуть правой кнопкой мыши на контроллере, найти функцию и установить соединение.
краткий
8
У меня такая же проблема. Я понял, что в X-Code Manualэлемент был выбран, когда я пытался создать розетку путем перетаскивания
После того, как я установил его на автоматический, он работал
У меня была именно эта проблема. Даже не заметил разницу.
Joshua Dance
Большой!!! Я потерял так много времени на этот проект по очистке от ошибок, перезапуску xCode, удалению производных данных, но это было единственное решение, которое работало для меня! Большое спасибо!
Антон Ерегин
7
Я решил эту проблему, программно создав метки и текстовые поля, а затем перетащил их из маленьких пустых кружков слева от кода в компоненты на раскадровке. Чтобы проиллюстрировать мою мысль: я написал @IBOutlet weak var HelloLabel: UILabel!, а затем нажал Command и перетащил код в компонент раскадровки.
Это решение отлично сработало для меня! Кроме того, @IBOutlet weak var myButton: UIButtonя использовал тот же процесс для настройки, @IBAction func doSomething(_ sender: Any) { }а затем подключил эту функцию к UIButton на моей раскадровке. Спасибо за то, что поделились этим @KuboAndTwoStrings
Nii
6
Закройте проект, над которым вы работаете.
Удалите папку вашего проекта «DerivedData». (Эта папка может находиться внутри папки вашего проекта или внутри ~/Library/Developer/Xcode/DerivedData/
(вашего проекта) /), либо в другом месте, которое было настроено вами.
Я нашел более простой обходной путь, так как эту ошибку можно найти в XCODE 9.
Шаг первый, перейдите в ваш viewcontroller и вручную напишите свойство, которое вы хотите подключить, как в примере ниже, убедитесь, что вы используете формат ниже
@IBOutlet слабый var questionsStackView: UIStackView!
Шаг второй: перейдите к раскадровке и подключите свой вид или что угодно, что вы пытаетесь соединить со свойством, созданным на шаге 1.
Вышеуказанное сэкономит вам время на удаление и очистку производных данных.
это было единственное решение, которое сработало для меня достаточно забавно.
Джозеф Астрахань
2
В моем случае это был bc. Я выбрал новый файл UIViewController в IB, а затем попытался перетащить его на этот новый контроллер, не удаляя предыдущие подключения в Инспекторе соединений. Сначала удалите их и попробуйте снова.
Для меня это сработало, когда на правой вкладке> Локализация я установил флажок на английском. Изначально была проверена только База. После этого у меня больше не было проблем. Надеюсь это поможет!
За это! Я пытался решить эту проблему самостоятельно в течение получаса уже LOL. Подобные проблемы в раскадровке легко исправить. Спасибо! Это мне очень помогло!
Гленн
0
Самое простое решение: - Я использовал xCode 7 и iOS 9.
в твоем .m
удалить #import "VC.h"
сохраните .m и снова подключите свою розетку, все будет работать нормально.
Ответы:
Вот некоторые вещи, которые могут это исправить (в порядке возрастания сложности):
Вставить вручную
и контролировать перетаскивание на него (Измените тип по мере необходимости.) Также посмотрите это .
Полностью закройте Xcode и перезапустите ваш проект.
источник
alias purgederiveddata='rm -rf ~/Library/Developer/Xcode/DerivedData/*'
в ~ / .bashrc, чтобы использовать командуpurgederiveddata
для очистки одной командойИли, если ничего из вышеперечисленного не работает, сначала введите имя розетки в файл,
@IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!
а затем щелкните и перетащите от розетки в кончике к переменной, которую вы только что программно создали. Это должно работать без каких-либо хлопот очистки, строительства и удаления чего-либо.источник
Просто выполните два следующих шага, чтобы избавиться от этой ошибки
Теперь попробуйте добавить действие или розетку. Вот и все.
Счастливое Кодирование
источник
Ни один из советов в лучшем ответе не работал для меня. Сходил с ума. Затем заметил, что Помощник редактора каким-то образом был установлен на Вручную, и я был на ViewController.swift (Interface) вместо файла ViewController.swift.
Поменял что и проблема решена. Немного смущает, но эй, мы все учимся.
источник
Вот шаги, решенные для меня:
Готово !
источник
Я была такая же проблема. Я устал ниже решений, но не работал:
Clean Project (cmd + shift + k)
и дажеClean Project Build (cmd + shift + alt + k)
Deleted Derived data
иModule Cache content
Ниже обойти эту проблему:
IBOutlet / IBAction
вручную (предпочтительно копировать вставить)Utilites
окноConnection Inspector
IBOutlet
иIBAction
записанный в исходном файле с Interface Builder.источник
У меня такая же проблема. Я понял, что в X-Code
Manual
элемент был выбран, когда я пытался создать розетку путем перетаскиванияПосле того, как я установил его на автоматический, он работал
источник
Я решил эту проблему, программно создав метки и текстовые поля, а затем перетащил их из маленьких пустых кружков слева от кода в компоненты на раскадровке. Чтобы проиллюстрировать мою мысль: я написал
@IBOutlet weak var HelloLabel: UILabel!
, а затем нажал Command и перетащил код в компонент раскадровки.источник
@IBOutlet weak var myButton: UIButton
я использовал тот же процесс для настройки,@IBAction func doSomething(_ sender: Any) { }
а затем подключил эту функцию к UIButton на моей раскадровке. Спасибо за то, что поделились этим @KuboAndTwoStrings~/Library/Developer/Xcode/DerivedData/
(вашего проекта) /), либо в другом месте, которое было настроено вами.
источник
Я нашел более простой обходной путь, так как эту ошибку можно найти в XCODE 9.
Шаг первый, перейдите в ваш viewcontroller и вручную напишите свойство, которое вы хотите подключить, как в примере ниже, убедитесь, что вы используете формат ниже
@IBOutlet слабый var questionsStackView: UIStackView!
Шаг второй: перейдите к раскадровке и подключите свой вид или что угодно, что вы пытаетесь соединить со свойством, созданным на шаге 1.
Вышеуказанное сэкономит вам время на удаление и очистку производных данных.
источник
Я получил эту ошибку, когда я переименовал класс. Тогда я решил это, просто выполнив следующие шаги
Product
->Clean
Restart
код Xcodeисточник
В моем случае это был bc. Я выбрал новый файл UIViewController в IB, а затем попытался перетащить его на этот новый контроллер, не удаляя предыдущие подключения в Инспекторе соединений. Сначала удалите их и попробуйте снова.
источник
Для меня это сработало, когда на правой вкладке> Локализация я установил флажок на английском. Изначально была проверена только База. После этого у меня больше не было проблем. Надеюсь это поможет!
источник
Я выбрал опцию Автоматически, чтобы выбрать файл ViewController.swift. И тогда я смогу взять торговые точки.
источник
Пожалуйста, выполните следующие два шага только, чтобы избавиться от этой ошибки.
Теперь попробуйте добавить / подключить действия или розетки.
Работает отлично для меня много раз.
источник
Это случилось, когда я добавил
Swift
файл вObjective-C
проект.Итак, в этой ситуации вы можете сделать это. ,
Select
MY_FILE.Swift
>>
Delete
>>
Remove Reference
Select
MY_FOLDER
>>
Add
MY_FILE.Swift
Voila ! You are good to go .
источник
Самое простое решение: - Я использовал xCode 7 и iOS 9.
в твоем .m
удалить #import "VC.h"
сохраните .m и снова подключите свою розетку, все будет работать нормально.
источник
Я использовал xCode 7 и iOS 9.
в твоем .m
Удалить
#import "VC.h"
сохраните .m и снова подключите свою розетку, все будет работать нормально.
в твоем .m
Добавить
#import "VC.h"
сохранить .m
источник
Ничего из этого не помогло мне, но я понял это.
Внутри раскадровки я скопировал соответствующий ViewController в буфер обмена и удалил его, после чего снова вставил.
Внезапно все снова заработало!
источник