iPhone - Почему я получаю эту ошибку, когда отображение представления правильное? - PullRequest
0 голосов
/ 01 мая 2009

Приложение для моего iPhone работало нормально. Я добавил компонент в свой файл xib (индикатор активности). Я создал свой собственный метод init и использую имя XIB в методе init. Теперь я получаю эту ошибку, когда я делаю pushViewController

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "ModelThumbnailView" nib but the view outlet was not set.'

Я знаю, что это обычно возникает, когда контроллер представления не сопоставлен с представлением в XIB. Но все сопоставления в порядке. Я даже удалил класс и XIB и создал их снова. Метод init также не возвращает ноль. Но я все еще получаю исключение, как только я вызываю pushViewController с объектом этого класса.

Есть идеи почему?

Редактировать

Просто отлаживал и вызывал метод в viewcontroller перед вызовом pushViewController для него. Отладчик показывает, что имя пера установлено правильно, комплект - ноль (потому что это то, что я передаю), но представление также ноль. Понятия не имею почему !!!

** Размещение кода на случай, если это поможет **

MyThumbnailViewController *modCont = [[[MyThumbnailViewController alloc] initWithNibName:@"MyThumbnailView" bundle:nil] autorelease];
[modCont setImgName:imgName count:numOfValues andIndex:0];

[[self navigationController] pushViewController:modCont animated:YES]; //This gives the exception

Это viewDidLoad класса MyThumbnailViewController. Контроль здесь никогда не достигается

- (void)viewDidLoad {
    self.navigationItem.title = imageName;
    self.navigationItem.hidesBackButton = NO;
    [[self navigationController] setNavigationBarHidden:NO];
}

Я удалил пользовательский метод init, но все еще получаю ту же ошибку.

решаемые

Просто создал все заново, и теперь все работает нормально, хотя я не вижу НИКАКИХ отличий в обеих вещах!

Ответы [ 3 ]

0 голосов
/ 01 мая 2009

Звучит странно, но для большей безопасности, возможно, еще раз проверьте следующее: Откройте IB и выберите Владелец файла. Затем в Identity Inspector убедитесь, что Класс установлен ваш пользовательский View Controller. Откройте Инспектор соединений и убедитесь, что выход View подключен к представлению в NIB (это то, на что жалуется исключение).

Сохраните файл XIB и закройте IB. Затем в XCode выберите Build-> Clean All Targets и попробуйте запустить приложение.

Я видел, как IB и XCode несколько раз расходились, я с нетерпением редактировал представления. в IB, что мое приложение никогда не загрузится, потому что я не добавил их в свой проект авария. Так что я чувствую твою боль: -)

0 голосов
/ 13 мая 2009

Я получил эту же ошибку - после осмотра я снова подключил VIEW OUTLET (в File's Owner) к VIEW в VIEW CONTROLLER (я только что подключился к основной части экрана VIEW - извините, я новичок во всем этом, поэтому я Я уверен, что я не называю эти вещи по правильному имени), и это исправило это. Это сработало и раньше, но что-то, что я сделал, должно было сломать эту ссылку.

FogCityFun

0 голосов
/ 01 мая 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...