我已将我的应用程序上传到 App Store,但被拒绝了两次,原因是该应用程序在 iPhone 4 (iOS 4.3.5) 上崩溃。我已经在同一版本上测试了我的应用程序,但我无法让它崩溃。
我的应用正在获取用户位置以在 g-map 上绘制路径。我还测试了位置服务启用/禁用、wifi 开/关。对于我测试过的所有这些方法,我的应用程序没有崩溃。
在对我上次的崩溃报告进行符号化后,我找到了位置,它位于 cellForRowAtindexpath
中:
if([finalarray count]>0)
{
cell.shopnamelbl.text=[[finalarray objectAtIndex:indexPath.row] valueForKey:@"name"];
cell.distancelbl.text=[NSString stringWithFormat:@"%@km",[[finalarray objectAtIndex:indexPath.row] valueForKey:@"distance"]];
}
else if([unsortedarray count]>0)
{
cell.shopnamelbl.text=[[unsortedarray objectAtIndex:indexPath.row] valueForKey:@"name"];
cell.distancelbl.text=@"";
}
else
{
cell.shopnamelbl.text=@"Loading...";
cell.distancelbl.text=@"";
}
return cell;
在 cell.shopnamelbl.text=@"Loading...";
上面的代码中,这一行是我崩溃的原因,但在我的测试中,一切正常。我在我的应用程序的其他任何地方都没有看到崩溃。
那么现在我能做些什么来解决这个问题呢?
最佳答案
您发布的代码没有明显的错误,因此您测试的代码与 Apple 手机上的代码之间可能存在其他差异。
在第一次运行时,他们的设备在 NSUserDefaults
设置中没有任何内容,在钥匙串(keychain)中没有任何内容,在 Documents 目录中没有任何内容。您需要彻底删除设备上之前运行应用程序的任何痕迹。删除并重新安装是不够的。
它可能也值得在许多设备上尝试。您可能无意中对某些操作需要多长时间做出了一些假设,这些操作在 Apple 用于测试的更快/更慢/不同的手机上不适用。
关于iphone - 为什么我在 cellForRowAtindexpath 中遇到崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7024937/