Не удалось вставить новое выходное соединение: не удалось найти информацию для класса с именем

У меня возникла ошибка в Xcode, в которой говорилось, что информации о контроллере не было.

Невозможно вставить новое выходное соединение: не удалось найти информацию для класса с именем

Почему это происходит?

Снимок экрана 1

Ответ 1

Вот некоторые вещи, которые могут исправить это (в порядке возрастания сложности):

  • Очистите проект (Продукт > Очистить)
  • Вручную вставить

    @IBOutlet weak var viewName: UIView!
    // or
    @IBAction func viewTapped(_ sender: Any) { }
    

    и перетащите его на него. (При необходимости измените тип.) (Идея из этого ответа. Пожалуйста, повысьте его.)

  • Полностью закройте Xcode и перезапустите проект.

  • Удалите папку "Производные данные" (перейдите в Xcode > Настройки > Местоположение и щелкните серой стрелкой по папке "Производные данные", а затем удалите папку проекта.)
  • Нажмите "Удалить" в классе, удалите ссылку (не "Переместить в корзину" ) и добавьте ее снова. (см. этот ответ)

Ответ 2

Или, если ничего из вышеприведенного не работает, сначала введите имя выхода в файл @IBOutlet weak var headerHeightConstraint: NSLayoutConstraint!, а затем щелкните и перетащите из розетки в наконечник в переменную, которую вы только что создали программно. Он должен работать без каких-либо хлопот по очистке, сборке и удалению чего-либо.

Ответ 3

Просто выполните два следующих шага, чтобы избавиться от этой ошибки.

  • Очистить проект с помощью продуктa > clean
  • Запустите проект

Теперь попробуйте добавить действие или выход. Это.

Счастливое кодирование

Ответ 4

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

Это решит ваши проблемы.

Ответ 5

Вот шаги, которые были решены для меня:

  • Удалить ссылку на класс из представления (раскадровка/xib) и сохранить;
  • Добавить имя класса снова и сохранить;
  • Очистка и сборка;

Готово!

Ответ 6

У меня была такая же проблема. Я устал ниже решений, но не работал:

  • Clean Project (cmd + shift + k) и даже Clean Project Build (cmd + shift + alt + k)
  • Deleted Derived data и Module Cache content

Ниже обходной путь к этой проблеме:

  • Перейдите в файл исходного кода и напишите IBOutlet / IBAction вручную (желательно скопировать ссылку)

Снимок экрана 1

  1. Затем перейдите в файл раскадровки и откройте окно Utilites
  2. Перейти к Connection Inspector
  3. Затем подключите IBOutlet и IBAction, записанные в исходный файл с помощью Interface Builder.

Снимок экрана 2

Ответ 7

Я решил эту проблему, программно создав ярлыки и текстовые поля, а затем Command-Dragged из маленьких пустых кругов слева от кода компонентам на Storyboard. Чтобы проиллюстрировать свою мысль: я написал @IBOutlet weak var HelloLabel: UILabel!, а затем нажал Command и перетащил код в компонент на раскадровке.

Ответ 8

  • Закройте проект, над которым вы работаете.
  • Удалить папку вашего проекта 【DerivedData】. (Эта папка может быть внутри вашей папке проекта или внутри ~/Library/Developer/Xcode/DerivedData/(ваш проект)/) или в другом месте, которое было настроено вами.
  • перезапустите проект.

Ответ 9

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

Ответ 10

В моем случае это был bc. Я выбрал новый файл UIViewController в IB, а затем попытался выполнить ctrl-drag на этот новый контроллер без предварительного удаления предыдущих подключений в инспекторе соединений. Удалите их и повторите попытку.

Ответ 11

Для меня это сработало, когда на правой вкладке > Локализация, я проверил английский флажок. Первоначально была проверена только Base. После этого у меня не было больше проблем. Надеюсь, это поможет!

Ответ 12

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

Ответ 13

Для меня не работало ни одно из вышеперечисленных решений. Мне пришлось удалить контроллер представления, , который я скопировал и вставил снова в своем раскадровке, чтобы повторно использовать это. Затем я перетащил новый контроллер представления в раскадровку и каждую вещь получилось отлично:). Надеюсь, это поможет кому-то с той же проблемой.

Ответ 14

не нужно ничего удалять. Просто добавьте розетку вручную @IBoutlet weak var imageName: UIImageView! и подключите его к изображению, перетащив эту розетку на изображение. поэтому остальные элементы можно просто подключить

Ответ 15

Я нашел более легкое обходное решение, так как я эту ошибку можно найти на XCODE 9.

Шаг 1 перейдите к вашему диспетчеру просмотра и вручную напишите свойство, которое вы хотите подключить, как показано ниже, убедитесь, что вы используете следующий формат.

@IBOutlet weak var questionsStackView: UIStackView!

Шаг второй перейдите в свою раскадровку и подключите свой просмотр или что-то еще, что вы пытаетесь подключиться к свойству, созданному на шаге 1.

Вышеупомянутое позволит сэкономить время удаления и очистки полученных данных.

Ответ 16

Я получил эту ошибку, когда переименовал класс. Затем я решил это, выполнив следующие шаги

  • В меню Xcode → ProductClean
  • Restart Xcode

Ответ 17

Самое простое решение: - Я использовал xCode 7 и iOS 9.

в вашем .m

удалить #import "VC.h"

сохранить .m и снова подключить ваш выход, он отлично работает.

Ответ 18

Я использовал xCode 7 и iOS 9.

в вашем .m

удалить #import "VC.h"

сохранить .m и снова подключить ваш выход, он отлично работает.

в вашем .m

добавить #import "VC.h"

сохранить .m

Ответ 19

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

Ответ 20

Просто перезапустил XCode и больше не получил ошибку. Для меня это произошло, когда я переименовал класс

Ответ 21

лучший способ решить эту проблему: попробуйте создать новый класс tableviewcell типа UITableViewCell и назначьте класс ячейки tableview этой ячейке tableview, а затем очистите ваш проект, после этого вы не получите эту ошибку.

Ответ 22

Что сработало для меня, так это удалить ссылку на выход из раскадровки в файл .swift.

Затем очистите и снова подключите розетку, и это сработало...

Не знаю, почему это сработало.

Ответ 23

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

Внутри раскадровки я скопировал соответствующий ViewController в буфер обмена и удалил его, после чего я снова вставил его.

Неожиданно все снова работало как шарм!