ios - 仅通过 hockeyapp 构建发生的崩溃?

标签 ios objective-c xcode hockeyapp nsrangeexception

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

这是我从 HockeyApp 获得的报告:

*** 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“-[__NSCFArray objectAtIndex:]:索引(-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 安装,两者都可以正常工作。

最佳答案

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

应该是for (int i=0;....

如果没有初始化,那么i的值是不可预知的,它可以是null,也可以是它的内存地址的值。

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

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

关于ios - 仅通过 hockeyapp 构建发生的崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38794671/

相关文章:

iphone - UITableViewController 和 subview

ios - 无法在 iOS 可执行文件中获取 Mach-O 文本段大小

ios - PFObject 没有成员 objectforkey

iphone - UITableViewCell 内容四处移动

Swift UITableView 不会调整到更大的尺寸

ios - 仅当委托(delegate)方法完成时才迭代 NSArray 中的下一项

iphone - 属性声明中的非原子和保留是什么意思

swift - 可重用 swift 代码 UIKit 的最佳方法

iOS:我应该如何阅读这个说我的应用程序被 pthread_kill 和 SIGABRT 杀死的崩溃报告?

objective-c - 以编程方式打开 Mac App Store