2012-06-20 3 views
0

Я обновил свой XCode до 4.2 и хотел бы использовать Simulator 5.0 вместо 4.3.XCode AppDelegate возвращает sigabrt в 5.0 Simulator, но отлично работает в 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.

Очистка цели, перезагрузка и т. Д. Не работает.

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

Спасибо!

ответ

1

Пробовали ли вы подставляя

UIApplicationMain(argc, argv, nil, nil); 

с

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 
+0

SIGABRT даже раньше –

+0

Как это, где раньше? –

+0

AppDelegate сначала загружает экран входа в систему. после входа в систему есть делегация, которая вызывает SIGABRT. –

0

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

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

myTabBar.viewcontrolleres = [NSArray arrayWithObjects: myViewController, more, nil]; 
+0

Это код. Когда я покидаю свою делегацию и просто показываю вкладку, она работает. Я создал кнопки на панели навигации с той же Appdelegation, что и раньше. Как только кнопки нажимаются, я получаю тот же SIGABRT. Похоже, я не могу использовать этот тип делегирования во всем приложении. –

+0

Как я вижу, в массиве нет всех tabbarControllers, и когда я пытаюсь вызвать один из них, я получаю sigabrt. Ios4.3 просто переопределяет это. есть ли возможность переопределить его и в ios5? –