更新
我自己解决了这个问题。我将其放在此处以供进一步参考。我发现我将窗口的rootViewController连接到MainWindow.xib中的tabBarController,而不是在didFinishLaunchingWithOptions中添加以下行:
[self.window setRootViewController:self.tabBarController];
删除MainWindow中的链接后,一切都很好。
我猜这可能会触发第一个选项卡的视图,该选项卡具有未初始化的数组。
无论如何,我仍然不知道为什么在ios4下还可以。
谢谢。
更新
感谢您的评论和答案,它发生在进入didFinishLaunchingWithOptions之前。但是我仍然在此处粘贴didFinishLaunchingWithOptions,以查看是否遗漏了任何内容。
ps:它在ios 4.x上完美工作
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
return YES;
}
嗨,我遇到了一个奇怪的问题,发生在didFinishLaunchingWithOptions之前,所以我不知道如何处理它。谁能提供任何提示?谢谢。
2012-03-10 18:03:12.642[95579:17003] Unresolved error (null), (null)
2012-03-10 18:03:12.644[95579:17003] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'
*** First throw call stack:
(0x1a07052 0x1fbbd0a 0x19f3db8 0x16c57 0x19d15 0x973e 0x8665 0xa1a64e 0xa19c1c 0xa4056d 0xa2ad47 0xa41441 0xa4145d 0xa4145d 0xa414f9 0x981d65 0x981dac 0xb7274e 0xb74010 0x95414a 0x954461 0x9537c0 0x962743 0x9631f8 0x956aa9 0x28f4fa9 0x19db1c5 0x1940022 0x193e90a 0x193ddb4 0x193dccb 0x9532a7 0x954a9b 0x2690 0x1eb5)
terminate called throwing an exceptionCurrent language: auto; currently objective-c
最佳答案
首先检查数组是否为空:
if ([array count] > 0) {
/* do something with your array */
}
如果需要查看数组内部,请设置断点并在调试时查看内部。