我遇到了一个问题,只有当应用程序通过HockeyApp而不是Xcode安装时,才会发生崩溃。
这是我从HockeyApp得到的报告:
*由于未捕获异常'NSRangeException‘而终止应用程序,原因:'-__NSCFArray objectAtIndex::index (-1970199490 (或可能更大))超出界限(15)’MainViewController.m,第646行
它指的是这一行:
for (int i; i < [resultsArray count]; i++) {
if ([[resultsArray[i] valueForKey:@"uniqueId"] isEqualToString:[[NSUserDefaults standardUserDefaults]
stringForKey:@"FbId"]]) {
resultsArray = resultsArray[i];
}
}你知道为什么当一个构建是通过HockeyApp而不是通过Xcode安装时,我会在那里崩溃吗?我甚至尝试过使用开发和发行证书在设备上构建应用程序,但只要构建不是通过HockeyApp安装的,两者都可以很好地工作。
发布于 2016-08-06 01:35:54
我认为问题不是在for循环中初始化i的值。
应该是for (int i=0;....
如果它没有初始化,那么i的值将是不可预测的,它可能是null,也可能是它的内存地址的值。
如果你没有初始化它,那么这里会有无限循环(如果没有崩溃),因为i的值将是某个随机的负数-1970199490,
而且,即使您在xcode中执行此操作,也会导致相同的行为。
https://stackoverflow.com/questions/38794671
复制相似问题