只有通过hockeyapp构建才会发生崩溃?

时间:2016-08-05 17:17:43

标签: ios objective-c xcode hockeyapp nsrangeexception

我遇到的问题是,只有在通过HockeyApp安装应用程序时才会发生崩溃,而不是通过Xcode。

这是我从HockeyApp获得的报告:

***因未捕获的异常终止应用' NSRangeException',原因:' - [__ NSCFArray objectAtIndex:]:索引(-1970199490(或可能更大))超出边界(15)& #39; 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安装构建,两者都可以正常工作。

1 个答案:

答案 0 :(得分:2)

我认为问题不是在for循环中初始化i的值。

应为for (int i=0;....

如果没有初始化,那么i的值将是不可预测的,它可以是null或者它可以是其内存地址的值。

如果你没有初始化它,那么这里会有无限循环(如果没有崩溃),因为i的值将是一些随机负数-1970199490,

即使您从xcode执行此操作,也会导致相同的行为。