загруженный наконечник, но выход "view" не установлен

<p>я добавил новый файл пера в свой проект и попытался загрузить его.</p><p>однако, когда я нажимаю на значок панели инструментов, который должен привести меня к представлению, которое я создал, я получаю <code>nsinternalinconsistencyexception</code> с сообщением:</p><blockquote> <p>завершение приложения из-за необработанного исключения «nsinternalinconsistencyexception», причина: «- [uiviewcontroller \_loadviewfromnibnamed: bundle:] загрузил перо «...», но розетка представления не была установлена. '</p> </blockquote><p>таким образом, я открыл свой файл пера, и я вижу для представления, что никакие установленные ссылки не установлены. тем не менее, я пытаюсь щелкнуть и перетащить круг для «новой ссылки на источник» в владелец файла, но это не позволит мне ... что мне нужно сделать, чтобы отобразить мой вид?</p>

<p>идентификация представления - идентификация класса не установлена. после установки соответствующего класса проблема была решена.</p>

<p>вы, ребята, правы, но, поскольку я новичок, мне потребовалось немного времени, чтобы выяснить все шаги, чтобы сделать это. вот что сработало для меня:</p><ul> <li>откройте файл xib, вызывающий проблемы</li> <li>нажмите на значок владельца файла на левой панели (верхняя часть выглядит как желтое поле)</li> <li>если вы не видите правую боковую панель, нажмите на третий значок над «видом» на панели инструментов. это покажет правую боковую панель</li> <li>в правой боковой панели нажмите на третью вкладку - ту, которая выглядит как газета</li> <li>в «custom class» вверху убедитесь, что class - это имя viewcontroller, которое должно соответствовать этому представлению. если нет, введите его</li> </ul><p><img src="https://i.stack.imgur.com/h5ifi.jpg" alt="custom class configuration"></p><ul> <li>в правой боковой панели нажмите на последнюю вкладку - ту, которая выглядит как круг со стрелкой на ней</li> <li>вы должны увидеть «розетки» с «видом» под ним. перетащите кружок рядом с ним на значок «вид» на левой панели (нижний, похожий на белый квадрат с толстым серым контуром</li> </ul><p><img src="https://i.stack.imgur.com/fzu7d.jpg" alt="custom class configuration"></p><ul> <li>сохранить xib и перезапустить</li> </ul>

<p>это предложение джоша джастиса, но в графической форме (фотографии мои):</p><ol> <li>выберите владельца файла</li> <li>на правой боковой панели выберите пользовательский класс.</li> <li>введите имя пользовательского класса</li> </ol><p><img src="https://i.stack.imgur.com/h5ifi.jpg" alt="enter image description here"></p><ol start="4"> <li>на правой боковой панели выберите oultets</li> <li>перетащите вид розетки для просмотра компонента</li> </ol><p><img src="https://i.stack.imgur.com/fzu7d.jpg" alt="enter image description here"></p><p>наконец, view controller создается с использованием скользящего кода:</p><pre><code> ptfilteruservc *afilteruservc = [[ptfilteruservc alloc] initwithnibname:@"filtervc" bundle:nil]; //optional.this is how 'i' am interested in present the view controller. [self.navigationcontroller pushviewcontroller:afilteruservc animated:yes]; </code></pre>

<p>обычно я могу это исправить, переделав соединение между владельцем файла и представлением. удерживая клавишу «control», перетащите владелец файла в свой вид (в ib) и выберите вид из всплывающего меню.</p>

<p>вы уверены, что у вас есть uiview (или подкласс), назначенный свойству "view" вашегоviewviewcontroller? </p><p>щелкните правой кнопкой мыши «владелец файла» в левой панели xib для вашего viewcontroller и убедитесь, что выход «view» установлен . если нет, установите его в представление! </p><p>это определенно решит проблему</p>

<p>у меня была такая же проблема с xcode 4.6.3. я начал с пары файлов с именами <code>mysettingsview.h</code> и <code>.m</code>, но удалил их в пользу <code>mysettingsviewcontroller.h</code>, но, несмотря на попытку большинства подсказок, упомянутых здесь, он все еще продолжал ошибаться, </p><blockquote> <p>2013-07-05 11: 48: 17.205 myapp [39024: c07] *** завершение работы приложения из-за необработанного исключения «nsinternalinconsistencyexception», причина: '- [uiviewcontroller \_loadviewfromnibnamed: bundle:] загрузил «mysettingsview», но точка просмотра не была установлена. '</p> </blockquote><p>очевидно, он все еще был «сбит с толку», пытаясь загрузить mysettingsview.xib вместо mysettingsview<em> controller </em>. xib. может быть, логика «делай, что я имею в виду» слишком причудлива.</p><p>поэтому я обошел проблему, жестко закодировав имя nib/xib в mysettingsviewcontroller.m:</p><pre><code>- (id)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil { self = [super initwithnibname:@"mysettingsviewcontroller" bundle:nibbundleornil]; } </code></pre>

<p>для меня все вещи, изложенные здесь <a href="https://stackoverflow.com/a/6395750/939501">https://stackoverflow.com/a/6395750/939501</a> были правдой, но все-таки это была ошибка, причина была в том, что я создал класс view с именем abcview, а затем удалил его, позже добавил контроллер представления как abcviewcontroller, так что каким-то образом он ссылался на старый abcview в новом контроллере представления, мне пришлось удалить abcviewcontroller и добавить новый с другим именем, что решило мою проблему.</p><p>спасибо</p>

<p>моя проблема с этим была вызвана наличием дублирующего пера в папке класса, который не имел установленного представления. казалось, xcode выбирает один кончик для сборки, а затем другой, когда я собирал проект в следующий раз. просто удалил другой. выглядит хорошо. doh!</p>

<p>любой, кто использует метод xib для создания uiview и сталкивается с этой проблемой, заметит, что у вас не будет выхода «view» в меню инспектора соединений. но если вы установите для пользовательского класса «владельцы файла» значение uiviewcontroller, а затем вы увидите выход «view», который вы можете просто использовать cmnd для подключения выхода к customview.</p>

<p>я только что исправил это в своем. большой проект, два файла. один был "reallylargenameview", а другой был "reallylargenameviewcontroller"</p><p>основываясь на 2-м ответе, выбранном выше, я решил очистить свою сборку. нада, но я все еще подозревал xcode (поскольку у меня есть два идентичных класса, я должен их абстрагировать, но ...) так что кто-то работает, кто-то нет. имена владельцев файлов до сих пор копируются и вставляются, розетки переподключаются, xcode перезагружается, но ничего не происходит.</p><p>таким образом, я удаляю подобный именованный класс (который является представлением). вскоре новая ошибка «розетка внутри не подключена» буквально была «webview, а не значение ключа», бла… в основном, говоря «visual studio лучше». во всяком случае ... я стираю меньший именованный файл, и бам, это работает.</p><p>xcode смущает файлы с одинаковыми именами. и проект достаточно большой, чтобы немного перезагрузить компьютер, что может быть его частью.</p><p>хотелось бы, чтобы у меня был более технический ответ, чем «xcode в замешательстве», но хорошо, xcode сильно запутался на этом этапе. не путать это так же, как я помогу маленькому ребенку. это работает сейчас, :) должно принести пользу другим, если вышеперечисленное ничего не исправит.</p><p>всегда не забывайте чистить свои сборки (удаляя симулятор тоже)</p>

<p>просто потратил больше часа, пытаясь выяснить, почему мое свойство view не установлено в моем контроллере представления после его инициализации с помощью nib. не забудьте вызвать «[super initwithnibname ...]» внутри initwithnibname контроллера представления.</p>

<p>у меня также была та же проблема, и моя проблема заключалась в том, что я добавил другую локализацию (английский) в перо viewcontrollers, чтобы мое приложение с немецким языком локализации не смогло найти перо с английской локализацией !! надеюсь, это кому-нибудь поможет!</p>

<blockquote> <p>я столкнулся с той же проблемой, когда случайно удалил ссылку на xib и добавил ее снова. я просто исправил, установив соединение между владельцем файлов и представлением. также убедитесь, что пользовательский класс filesowner - это ваш ожидаемый viewcontroller.</p> </blockquote>

<p>в моем случае указанный инициализатор <code>- (instancetype)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil</code> в классе *** viewcontroller был реализован, поэтому даже если я вызову другой инициализатор для инициализации объекта, будет вызван указанный инициализатор. </p><p>таким образом, для решения этой проблемы проверка <code>- (instancetype)initwithnibname:(nsstring *)nibnameornil bundle:(nsbundle *)nibbundleornil</code> также является правильным способом.</p>

<p>для меня проблема была вызвана вызовом <code>initwithnibname:bundle:</code>. я использую ячейки табличного представления из nib-файла для определения форм ввода, которые находятся на <code>tableviews</code>. поскольку у меня нет представления, не имеет смысла подключаться к одному. вместо этого, если я вместо этого вызываю метод <code>initwithstyle:</code>, и изнутри я загружаю файл пера, тогда все работает как положено.</p>

<p>у меня была та же проблема, но было другое решение. проблема в этом случае заключалась в том, что класс владельца файла не был подключен к файлу xib.</p>

<p>у меня была та же проблема, но требовалось немного другое решение. проблема в этом случае заключалась в классе владельца файла, а не в классе представления. чтобы установить это, я должен был щелкнуть значок «воспроизведение в обратном направлении» в левом нижнем углу окна interface builder, и затем появились параметры, которые изолировали характеристики владельца файла, первого ответчика и представления. нажав на первый (большой прозрачный прямоугольник), я смог установить его собственный класс, как предложено выше.</p>

<p>сегодня вечером я столкнулся с чем-то очень похожим с подклассом swift uiviewcontroller. в этом случае ни одно из вышеперечисленных исправлений не сработало, но немного переупорядочил мой код. net-net, имеющий расширение подкласса, происходит до того, как само определение подкласса в том же файле, кажется, сбивает с толку xcode, несмотря на то, что компиляция выполняется нормально; исправление заключалось в размещении расширений после определения подкласса.</p><p>я разместил детали <a href="https://stackoverflow.com/a/28655023/1634315">в ответ на этот похожий вопрос</a> .</p>

<p>у меня была похожая проблема с xcode 9.3, и установка «модуля» в инспекторе атрибутов «владелец файла» для модуля проекта устранила это для меня.</p>

<p>в моем случае вид не просматривался в xib . в xib представление было size = none (4-я вкладка справа). я установил размер freeform и перезагрузил xcode . view был обжалован, и я установил правильную ссылку на view.</p>

<p>у меня была та же проблема, я понял, и это потому, что я пометил "<strong>статические ячейки</strong>" в свойствах <strong>table view</strong> в <strong>content option</strong>. сработало, когда оно изменилось на "<code>dynamic prototypes</code>". снимок экрана ниже . <a href="https://i.stack.imgur.com/v44k3.png"> <img src="https://i.stack.imgur.com/v44k3.png" alt="enter image description here"> </a> </p>

<p>просто была та же ошибка в моем проекте, но другая причина. в моем случае у меня была установка iboutlet с именем «view» в моем пользовательском классе uitableviewcontroller. я знал, что «представление» было особенным, потому что это член базового класса, но я не думал, что view (другой случай) также будет проблемой. я предполагаю, что некоторые области какао не чувствительны к регистру, и, вероятно, загрузка xib является одной из этих областей. поэтому я просто переименовал его в defaultview, и теперь все хорошо.</p>

<p>выберите владельца файла и перейдите к открытию инспектора идентификации и дайте имя класса, которому он соответствует. если ни один из описанных выше способов не работает, но вы все еще не видите выходное окно просмотра, тогда дайте новую ссылку на выходное соединение с владельцем файла, тогда вы сможете увидеть выходное окно просмотра. нажмите на view outlet, чтобы установить связь между view outlet и владельцем файла. запустите приложение, это работает нормально.</p>

<p>для меня это случилось, когда </p><ul> <li>у меня есть класс viewcontroller (.mm/h), связанный с файлом nib,</li> <li><p><strong> uiview </strong>из этого viewcontroller должен быть загружен в другое представление как подпредставление,</p></li> <li><p>мы назовем что-то вроде этого </p> <pre><code>-(void)initcheckview{ checkview *pcheckviewctrl = [checkview instance]; pcheckview = [pcheckviewctrl view]; [[self view]addsubview:pcheckview]; [pcheckviewctrl performcheck]; } </code></pre></li> </ul><p>куда </p><pre><code>+(checkview *)instance{ static checkview *pcheckview = nil; static dispatch\_once\_t checktoken; dispatch\_once(&checktoken, ^{ pcheckview = [[checkview alloc]initwithnibname:@"checkview" bundle:nil]; if ( pcheckview){ [pcheckview initlocal]; **[pcheckview loadview];** } }); return pcheckview; } </code></pre><p>здесь loadview отсутствовал , добавление этой строки решило мою проблему. </p>

<p>я хотел бы поддержать стивена дж. иногда x code просто запутывается. у меня просто был опыт, когда я много играл с пользовательским интерфейсом, и несколько раз добавлял и удалял розетки. розетки просто больше не будут подключаться. я никогда не выяснял конкретную причину (я пробовал все решения выше), и мне просто нужно было удалить nib и воссоздать его с нуля, и на самом деле мне пришлось использовать другое имя для nib, прежде чем он заработает. (xcode 4.6.1) потратил на это пару часов.</p>

<p>предыдущие ответы<em> почти </em>решили проблему для меня, но последний шаг отсутствовал.</p><ol> <li>создайте файл xib и swift с тем же именем.</li> </ol><p> <a href="https://i.stack.imgur.com/pj2uw.png"> <img src="https://i.stack.imgur.com/pj2uw.png" alt="add view and swift file"> </a> </p><ol start="2"> <li>установите владельца файла в качестве подкласса uiview.</li> </ol><p> <a href="https://i.stack.imgur.com/8lsod.png"> <img src="https://i.stack.imgur.com/8lsod.png" alt="enter image description here"> </a> </p><ol start="3"> <li>перетащите выход из представления в подкласс uiview, назовите его «contentview»</li> </ol><p> <a href="https://i.stack.imgur.com/ypq7c.jpg"> <img src="https://i.stack.imgur.com/ypq7c.jpg" alt="add the contentview"> </a> </p><ol start="4"> <li>добавьте этот пользовательский инициализатор, чтобы при загрузке xib он прикреплял contentview</li> </ol><p> <a href="https://i.stack.imgur.com/sonph.png"> <img src="https://i.stack.imgur.com/sonph.png" alt="add the contentview as a subview"> </a> </p><pre><code>required init?(coder adecoder: nscoder) { super.init(coder: adecoder) bundle(for: self.classforcoder).loadnibnamed("sampleview", owner: self, options: nil) addsubview(contentview) contentview.frame = self.bounds contentview.autoresizingmask = [.flexibleheight, .flexiblewidth] } </code></pre><p>теперь любые добавленные вами @iboutlets будут прикреплены.</p><p>ура, ричард</p>

<p>если вы все перепробовали и все еще получаете эту ошибку, попробуйте заново создать файл класса с нуля, но не забудьте установить флажок «также создать файл xib». это автоматически связывает несколько элементов, которые не связаны при создании этих файлов отдельно. после того, как это будет создано, вы, вероятно, сможете вырезать и вставить все на новый xib, и оно должно работать нормально.</p><p>я нахожу эту проблему специально с созданием файлов отдельно в swift.</p>