Не удалось вставить новое действие. Ошибка
Я получаю эту ошибку при попытке создать новое действие для UIButton, перетащив синюю стрелку из UIButton в мой заголовочный файл (вы знаете, эта новая функция XCode 4...)
Когда я создаю действие в коде самостоятельно и подключаю его по-старому, просто перетащив его с кнопки на File Owner, он хорошо работает
Вот скриншот:
![Error screenshot]()
Ответы
Ответ 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) для каждого контроллера представления, вы должны проверить его, щелкнув поле рядом с именем вашего проекта. Так что ваш проект включает этот файл. В противном случае эта ошибка будет сохраняться, потому что ваш проект не подключен к файлу, даже если он его создал.