我已将我的应用程序上传到App Store但遭到拒绝两次,原因是该应用程序在iPhone 4(iOS 4.3.5)上崩溃。我已经在相同的版本上测试了我的应用程序,但我不能让它崩溃。
我的应用正在获取用户在g-map上绘制路径的位置。我还测试了位置服务启用/禁用,wifi on / of。对于我测试的所有这些方法,我的应用程序没有崩溃。
在对我上次崩溃报告进行符号化后,我找到了位置,这位于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...";
上面的代码中,此行是导致我崩溃的原因,但在我的测试中,一切都运行良好。我的应用程序中的任何其他地方都没有发现崩溃。
那么我现在可以做些什么来解决这个问题?
答案 0 :(得分:2)
您发布的代码没有明显错误,因此您测试的内容与Apple手机上的内容之间可能存在其他差异。
首次运行时,他们的设备在NSUserDefaults
设置中没有任何内容,钥匙串中没有任何内容,文档目录中没有任何内容。您需要完全擦除设备上次运行应用程序的任何痕迹。删除和重新安装是不够的。
在许多设备上尝试也许值得。您可能无意中对某些操作所花费的时间做了一些假设,这些假设不适用于Apple用于测试的更快/更慢/不同的手机。