Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 在didFinishLaunchingWithOptions之前iOS崩溃:索引0超出空数组的界限_Iphone_Ios_Exception - Fatal编程技术网

Iphone 在didFinishLaunchingWithOptions之前iOS崩溃:索引0超出空数组的界限

Iphone 在didFinishLaunchingWithOptions之前iOS崩溃:索引0超出空数组的界限,iphone,ios,exception,Iphone,Ios,Exception,更新 我自己解决了这个问题。我把它放在这里作进一步参考。我发现我在main window.xib中将rootViewController连接到tabBarController,而不是在didfishlaunchingwithoptions中添加以下行: [self.window setRootViewController:self.tabBarController]; 删除主窗口中的链接后,一切正常 我猜它可能触发了第一个选项卡的视图,它有一个未初始化的数组 不管怎样,我还是不知道为什么在io

更新

我自己解决了这个问题。我把它放在这里作进一步参考。我发现我在main window.xib中将rootViewController连接到tabBarController,而不是在didfishlaunchingwithoptions中添加以下行:

[self.window setRootViewController:self.tabBarController];
删除主窗口中的链接后,一切正常

我猜它可能触发了第一个选项卡的视图,它有一个未初始化的数组

不管怎样,我还是不知道为什么在ios4下是可以的

谢谢


更新

感谢您的评论和回答,它发生在进入didFinishLaunchingWithOptions之前。不过,我仍然将didFinishLaunchingWithOptions粘贴到此处,以查看是否遗漏了任何内容

附言:它在ios 4.x上运行得非常完美

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
    return YES;
}

嗨,我遇到了一个奇怪的问题,它发生在我使用选项完成启动之前,所以我不知道如何处理它。有人能给点提示吗?谢谢你

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 */
}

如果需要查看数组内部,请设置断点并在调试时查看内部。

appDidFinishLaunchingWithOptions:方法的Post代码。发生这种情况是因为您试图访问空数组,因此请先检查数组是否为空,然后使用该方法。因此,您可以获得一个有用的堆栈跟踪,显示导致异常的代码。如建议的那样:从appDidFinishLaunchingWithOptions:Method发布任何与数组相关的代码谢谢,但我甚至在进入didFinishLaunchingWithOptions之前都不知道如何执行此操作