XCode AppDelegate возвращает sigabrt в симуляторе 5.0, но отлично работает в 4.3

Я обновил свой XCode до 4.2 и хотел бы использовать Simulator 5.0 вместо 4.3.

Я закодировал приложение панели вкладок с 5 вкладками, но отправил другое представление в качестве первого представления через appdelegate.

Теперь у меня проблема, что в симуляторе 4.3 все работает нормально, а в симуляторе 5.0 выдает ошибку:

int retVal = UIApplicationMain(argc, argv, nil, nil); SIGABRT

objc[3441]: EXCEPTIONS: throwing 0x7d626b0 (object 0x7d1e750, a NSException)
objc[3441]: EXCEPTIONS: searching through frame [ip=0xe99ee sp=0xbfffdee0] for exception 0x7d62690
objc[3441]: EXCEPTIONS: catch(id)
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0xe99ee sp=0xbfffdee0] for exception 0x7d62690
objc[3441]: EXCEPTIONS: handling exception 0x7d62690 at 0xe9bac
objc[3441]: EXCEPTIONS: finishing handler
objc[3441]: EXCEPTIONS: throwing 0x7d5cd30 (object 0x7d1e750, a NSException)
objc[3441]: EXCEPTIONS: searching through frame [ip=0xe9b9c sp=0xbfffdee0] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: searching through frame [ip=0x1a02db3 sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0xe9b9c sp=0xbfffdee0] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02db3 sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: handling exception 0x7d5cd10 at 0x1a02e46
objc[3441]: EXCEPTIONS: rethrowing current exception
objc[3441]: EXCEPTIONS: searching through frame [ip=0x1a02e0f sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02e0f sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: finishing handler
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02e38 sp=0xbfffec20] for exception 0x7d5cd10

Я локализовал проблему в AppDelegate по адресу:

AppDelegate *app = [AppDelegate getApp];
    app.tabController.selectedViewController = connNavController;

Я также пытался нажать контроллер, используя

[self.navigationController pushViewController:myViewController animated:YES];

но я всегда получаю SIGABRT.

Очистка цели, перезапуск и т. д. не работают.

Пожалуйста, помогите, если у вас есть решение.

Спасибо!


person Stefan Frackowiak    schedule 20.06.2012    source источник


Ответы (2)


ты пробовал заменить

UIApplicationMain(argc, argv, nil, nil);

с участием

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
person Omar Abdelhafith    schedule 20.06.2012
comment
AppDelegate сначала загружает экран входа в систему. после входа в систему происходит делегирование, которое вызывает SIGABRT. - person Stefan Frackowiak; 20.06.2012
comment
AppDelegation делается следующим образом: AppDelegate *app = [AppDelegate getApp]; [app.navigationController pushViewController: cntrl анимированный: YES]; [управление отпусканием]; Нет проблем в ios4.3, SIGABRT в ios5. ;( - person Stefan Frackowiak; 27.06.2012

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

Поэтому убедитесь, что в вашем коде есть это:

myTabBar.viewcontrolleres = [NSArray arrayWithObjects: myViewController, more, nil];
person Oscar Gomez    schedule 20.06.2012
comment
Это в коде. Когда я оставляю свою делегацию и просто показываю панель вкладок, она работает. Я создал кнопки на панели навигации с тем же Appdelegation, что и раньше. Как только нажимаю кнопки получаю тот же SIGABRT. Похоже, я не могу использовать этот тип делегирования во всем приложении. - person Stefan Frackowiak; 20.06.2012
comment
Как я вижу, в массиве есть не все tabbarControllers, и когда я пытаюсь вызвать один из них, я получаю sigabrt. ios4.3 просто переопределяет это. есть ли возможность переопределить его и в ios5? - person Stefan Frackowiak; 28.06.2012