Вопрос по objective-c, uitableview, cocoa-touch, ios, uikit – Не удалось вставить новую ошибку подключения к розетке

23

Я создал пользовательскую ячейку для загрузки в таблицу. Интерфейс завершен, и теперь я пытаюсь связать XIB и класс.

У меня открыт разделенный экран, и я пытаюсь управлять перетаскиванием элемента, чтобы Xcode мог установить соединение для меня. Когда я заполняю имя и нажимаю «Подключиться», я получаю сообщение об ошибке:

Could not insert new outlet connection: Could not insert source code into document at URL://localhost/Users/Velox/Projects/CompanyName/ProjectName/ProjectName/HistoryCell.m because it does not contain a class definition for the class named HistoryCell.

Я установил пользовательский класс XIB для HistoryCell.

Что мне здесь не хватает?

Благодарю.

Попробуй подключить его программно, установив свой iboutet в файл .h. iOS Developer
Хорошо.........: iOS Developer
Да, это отлично работает .... Dale Myers

Ваш Ответ

20   ответов
3

что я был дураком. Вы не можете сделать это так с Xcode. Если вы создаете свойства вручную в файле заголовка, а затем синтезируете их в файле класса, вы можете связать их, выполнив следующие действия:

Откройте файл XIB. Щелкните правой кнопкой мыши ячейку на панели «Объекты». Щелкните и перетащите нужные параметры на объекты в XIB.

Вот и все.

У меня тоже есть эта проблема. Как узнать, когда я могу перетащить объект, чтобы создать выходные соединения? Я помню, что иногда я мог это делать, когда разрабатывал приложения с основными деталями и для некоторых приложений с одним представлением. newguy
@ newguy Я думаю, это нормально, если вы не используете пользовательский компонент. Dale Myers
Это странно, потому что у меня нет собственного компонента. Я просто наложил некоторые метки на контроллер представления, и у меня даже нет имени или подкласса этого контроллера представления, что означает, что контроллер представления имеет имя класса по умолчанию "ViewController". newguy
Благодарность! Только что узнал оctrl-drag ярлык для ссылок на розетки. vaughan
75

эта проблема связана с ошибкой XCode, которая возникает, в основном, при замене файла новым файлом с тем же именем. Xcode, похоже, хранит ссылку на старый файл с тем же именем.

Во всяком случае, кажется, способ исправить это -

Clean проэк

Нажмите < Ваш проект> в Project Navigator Посмотреть. Перейти кCompile Sources под Фазы сборки цели, для которой вы строите. Удалите и добавьте обратно .m файл, который доставляет вам неприятности.

В качестве альтернативы, в Инспектор файлов ( Утилиты view) файла NIB, под Целевое членство, снимите флажок и проверьте имя цели.

Перезапустите Xcode для хорошей меры.

Конечно, удаление и добавление обратно файла .m тоже должно исправить это.

Шаги 1. и 2. в одиночку исправили это для меня. Не стесняйтесь спрашивать, нужно ли расширять какой-либо шаг.

Развеселение и удачное кодирование

Спасибо, это сработало! vaughan
Рад слышать : codeburn
Шаги 1. и 2. сделали это для меня тоже. Спасибо за вашу помощь phyzalis
thx, это решит мою проблему. ^^ derjohng
Шаги 1 и 2: то же самое для меня. Благодарность Rob Winchester
19

удалив файл .m (только для справки), а затем снова добавив его в проект. Я думаю, что XCode иногда портится (и я использую последнюю версию 4.6).

Избавил меня от лишних хлопот. Спасибо. :) absentmindeduk
Ах, хорошо :) Так много хлопот мне пришлось пройти, чтобы найти это простое исправление. Daniel Ryan
Это сработало для меня из-за немного другой ошибки: не удалось создать розетки, потому что не было найдено "@implementation" ... Sébastien
Это сработало. Очень просто. mythicalcoder
5

https: //stackoverflow.com/a/16166878/52194

Попытайтесь очистить свой проект и перезапустите Xcode.
Если это все еще не может быть связано, следуйте заUtilities навигационный вид Xcode, вTarget membership раздел, uncheck & check флажок, это будет работать. Возможно, вам следует пересобрать проект после снятия отметки.

4
Удалите файл .m из исходных текстов компиляции и добавьте его снова. Убери и построй свой проект. Перезапустите xcode.

4

rm -rf ~/library/Developer/Xcode/DerivedData/*

Перезапустите XCode и подключитесь.

Если хочешь, создай псевдоним

alias purgeallbuilds='rm -rf ~/library/Developer/Xcode/DerivedData/*'

в вашем .bash_profile как предложеноВо.

4

.m фай

удалят

#import "calssName.h" 

сохранить фай

снова добавь текст

#import "calssName.h"

сохранить фай

Великолепно ... Лучший. jeet.chanchawat
3

если есть какие-либо ошибки или предупреждения, исправьте ее. Затем, удерживая клавишу Ctrl, снова вставьте розетку, и проблема исчезнет.

Нет ... Ошибок не было. И я разместил решение 6 недель назад? Dale Myers
У меня была такая же проблема. Просто нужна была простая сборка программы, как подсказал @ Philip007 - и снова получилось хорошо. So Over It
3

который был удален случайно. Я читал файлы в проект, но добавление Outlets путем перетаскивания из файла xib дало мне упомянутую ошибку. Я очистил проект и перезапустил XCode, и все снова заработало нормально.

2

рикоснуться» к целевому классу - добавив и удалив что-то бессмысленное - для принудительной перекомпиляции. Проблема ушла тогда.

1

похоже, работали немного. К счастью, у меня была такая же ситуация на ранних этапах, и я хотел простой способ ее исправить, только в том случае, если это случится по колено в программировании. Получается, если вы просто строите проект «Команда B» или идете в Product и идете на сборку. Это работало нормально и связывало мой взгляд с указанным файлом.

1

в твоем .m

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

Сохраните .m и снова свяжите свою розетку - все будет хорошо.

0

открытое для другого проекта, и симулятор также работал. Я просто закрыл их обоих, и Product-> Clean мое текущее приложение. Оно работает

0

я просто удалил объект и добавил снова, после чего начал работать.

0

скопировать и вставить в него файл 3 удалить файл из первого проекта 4 скопировать и вставить файл из нового проекта в первый проект.

0

Очистить», а затем «Продукт> Очистить папку сборки», но все еще возникли проблемы. Затем я просто удалил поврежденные файлы .m и .h, связанные с контроллером представления, который доставлял мне проблемы, создал новые .m и .h для класса контроллера представления, переназначил новый класс контроллера представления на объект раскадровки, который у меня был проблемы, и все работало.

0

му проекту, как я несколько раз успешно делал на пустых проектах после уроков. Я попытался вставить целевую схему и удалить файлы, цели и схемы, а также перезапустить Xcode и удалить производные файлы много раз. Но каждый раз, когда я воссоздаю цель и пытаюсь активировать Assistant Editor, он не находит соответствующий файл на основной раскадровке, и если я выбираю его вручную, а затем пытаюсь перетащить новую розетку, я получаю ошибку оригинального плаката. Что еще это может быть? Как показывает факт, моя ошибка совершенно иная, как вы можете видеть на скриншоте.

Я получаю ту же ошибку. Как ты ее исправил? abhi1992
Поиск дубликатов ClassNames или StoryBoardsID в вашем.storyBoard редактируя как XML, я нашел дублированные имена из-за старых поддельных ссылок @ abhi1992. Если у вас сработал другой трюк, поделитесь им Jaime Agudo
0

что индексирование не было отключено (это была моя проблема). Вот как включить его из командной строки:

defaults write com.apple.dt.Xcode IDEIndexDisable 0

0

ова под другим именем. Оно работает

0
«чистый» проектlet полное индексирование (если не завершено) "построить" один раз проверьте, исправлена ли ваша проблема

Похожие вопросы