为什么我在cellForRowAtindexpath中遇到崩溃?

时间:2011-08-11 11:20:21

标签: iphone ios

我已将我的应用程序上传到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...";上面的代码中,此行是导致我崩溃的原因,但在我的测试中,一切都运行良好。我的应用程序中的任何其他地方都没有发现崩溃。

那么我现在可以做些什么来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您发布的代码没有明显错误,因此您测试的内容与Apple手机上的内容之间可能存在其他差异。

首次运行时,他们的设备在NSUserDefaults设置中没有任何内容,钥匙串中没有任何内容,文档目录中没有任何内容。您需要完全擦除设备上次运行应用程序的任何痕迹。删除和重新安装是不够的。

在许多设备上尝试也许值得。您可能无意中对某些操作所花费的时间做了一些假设,这些假设不适用于Apple用于测试的更快/更慢/不同的手机。