Подтвердить что ты не робот

Не удалось вставить новое действие. Ошибка

Я получаю эту ошибку при попытке создать новое действие для UIButton, перетащив синюю стрелку из UIButton в мой заголовочный файл (вы знаете, эта новая функция XCode 4...)

Когда я создаю действие в коде самостоятельно и подключаю его по-старому, просто перетащив его с кнопки на File Owner, он хорошо работает

Вот скриншот: Error screenshot

4b9b3361

Ответ 1

Убедитесь, что ваш .m файл существует в проекте и на диске. Убедитесь, что это правильно с блоком @implementaiton - @end. Откройте его в Xcode, закройте его, если ошибка сохранится, перезапустите Xcode.

Xcode пытается записать на EditPUViewController.m (в методе dealloc и т.д.), но не смог найти его.

Кроме того, он всегда помогает жестко очистить проект с помощью + + + K.

Ответ 2

Попробуйте следующее:

Откройте "Организатор", затем вкладку "Проект".

Очистите "Производные данные". Xcode должен повторно проиндексировать ваш проект, тогда и смысл кода должен работать. По крайней мере, работал на меня.

Ответ 3

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

Ответ 4

Перейдите в Xcode → preferences → location tab → производные данные → очистить полученные данные.

Ответ 5

Я столкнулся с этим вопросом сам, но ни один из представленных здесь методов не работал. Ошибка, описанная в вопросе выше, возникла, когда я попытался создать IBAction в моем заголовочном файле (.h), тогда как в мой файл реализации (.m) я даже не мог перетащить строку. (Xcode даже не покажет это небольшое всплывающее окно, где вы можете назвать свое действие.)

После нескольких часов я понял, что причиной, по которой я не мог создать IBAction, было то, что я удалил последнюю строку из моего .m файла. Xcode автоматически добавляет дополнительную пустую строку после разделителя @end при создании нового файла Objective-C.

Не спрашивайте меня, почему, но , если вы удалите эту строку, Xcode не позволит вам создавать какие-либо действия или выходы. (Это, очевидно, ошибка Xcode.)

Неверно

Вправо

Ответ 6

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

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

Он исправит проблему.

Ответ 7

Недавно я столкнулся с этой проблемой. Вскоре я понял, что дело было моим делом. Раньше я отключил индексирование XCode (которое использовалось навсегда и съедало мою RAM), используя приведенный ниже код в окне терминала:

defaults write com.apple.dt.XCode IDEIndexDisable 1

Чтобы вернуть XCode в состояние по умолчанию, я использовал следующую строку в окне терминала:

defaults write com.apple.dt.XCode IDEIndexDisable 0

Voila! Все хорошо снова..

Ответ 8

Я получил ту же ошибку. Перезапуск Xcode не исправил его для меня (я не хотел перезагружаться). Файл также не был в папке en.lproj(или в обычной папке проекта после того, как я удалил ее из Xcode). Исправление для меня состояло в том, чтобы заново создать файл с другим именем (использование одного случая в имени файла было недостаточно, чтобы исправить его... должно быть другое имя полностью).

Ответ 9

Я столкнулся с этой проблемой, когда создал класс, удалил его и создал новый с тем же именем. Обходной путь состоял в том, чтобы не повторно использовать имя удаляемого класса, а использовать новый. Таким образом, я бы сказал, что это ошибка на стороне XCode.

Ответ 10

  • Удалить вновь созданный класс (не удалять его, просто удалить ссылку, а затем повторно добавить);
  • Сохранить файл Xib;
  • Перезапустить Xcode;
  • Вы также можете удалить Derived Data, если он все еще не работает.

Кажется, из-за XCode отсутствует ссылка или требуется обновить вручную.

Ответ 11

В моем случае удаление ссылки nib (.xib) и добавление ее снова решило проблему.

Ответ 12

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

Ошибка была точно такой же. После перехода на другую архитектуру, чтобы скомпилированный проект, я мог подключить действие, удерживая кнопку ctrl, как обычно.

Ответ 13

user2175983 и ответ AstroCB хорошо работали для меня:

  • Просто удалите все данные Derived, запустив эту командную строку в терминале:

    rm -frd ~/Library/Разработчик/Xcode/DerivedData/*

  • Перезапустить Xcode

Ответ 14

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

Ответ 15

Я нашел ОТВЕТ. Когда вы создаете новый файл (файлы Objective C) для каждого контроллера представления, вы должны проверить его, щелкнув поле рядом с именем вашего проекта. Так что ваш проект включает этот файл. В противном случае эта ошибка будет сохраняться, потому что ваш проект не подключен к файлу, даже если он его создал.