Проблема с загрузкой начального пера в программе iPhone - PullRequest
1 голос
/ 28 января 2011

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

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

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </var/mobile/Applications/....app> (loaded)' with name 'MainWindow''

Итак: он пытается загрузить XIB с именем MainWindow, но не может его найти.Это потому, что у меня нет XIB с именем MainWindow;первый загруженный XIB называется FrontPage.xib.Я не запускал эту программу, используя один из шаблонов, и поэтому вначале мне не был предоставлен файл MainWindow.xib.

Машина Google сообщает мне, что базовое имя файла основного пера можно изменить в моемсписок приложений.Итак, я иду туда и меняю его на FrontPage.Теперь я получаю другую ошибку:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIApplication 0x12c270> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key view.'

Я дергаю себя за волосы - кто-нибудь знает решение?

Ответы [ 3 ]

2 голосов
/ 28 января 2011

Убедитесь, что ваш вид подключен к выходу «Вид» в Интерфейсном Разработчике. Это можно сделать, щелкнув правой кнопкой мыши на «Владельце файла» в IB, а затем перетащив его в «Просмотр», в свой вид. Вот иллюстрация из игры, над которой я работаю. Обратите внимание на синюю линию, перетаскиваемую от точки справа до «вида».

enter image description here

Еще одна вещь, которую вы хотите проверить, это ваш Info.plist. Убедитесь, что вы назвали свой файл пера FrontPage , а не * FrontPage ****. Nib ***.

1 голос
/ 28 января 2011

Если Frontpage.xib будет основным xib вашего приложения, то вы должны создать объект Window и объект делегата приложения в этом xib для того, чтобы приложение могло загружаться. Прежде чем вы сможете начать представлять контроллеры представления и тому подобное, вы должны настроить приложение и окно, иначе оно вылетит, как вы описали. Я бы предложил создать новый проект с использованием шаблона на основе окна и просто взглянуть на файл MainWindow.xib, который создается автоматически, и попытаться имитировать его в Frontpage.xib.

.. Хотя я бы просто искренне предложил использовать MainWindow.sib в вашем проекте и сделать ваш Frontpage.xib обычным контроллером представления xib. Если вы решите добавить новый файл в свой проект, затем выберите «Интерфейс пользователя», затем выберите «Приложение xib» вместо «Просмотр xib», и тогда вы получите что-то, что вам нужно.

Шаблоны проектов важны и полезны. Вы должны всегда использовать их. Я начинаю все с шаблона на основе окна. Это самый базовый шаблон и самый гибкий.

0 голосов
/ 28 января 2011

Если контроллер представления для FrontPage.xib установлен правильно путем установки свойства «Владелец файла» через IB, то вам также необходимо установить свойство представления. Вы можете сделать это, управляя перетаскиванием из Fileowner в представление. Из ошибки видно, что вы еще не установили свойство представления для своего представления. Откройте перо в Интерфейсном Разработчике и найдите View Connection в Инспекторе соединений, это должно быть связано с выходом представления владельца файла. Вам нигде не нужно объявлять его как свойство.

...