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

标签 iphone ios

我已将我的应用程序上传到 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/

相关文章:

ios - 如果 Facebook 访问 token 过期,会生成新的 Facebook 访问 token 吗?

iPhone iOS 如何将文本从 UITextView 导出到文本文件以进行跨平台编辑? (Mac、PC、iPhone 等)

iphone - 如何清除 ios 中的不活动内存

ios - 将Ipad应用锁定在横向模式

ios - Swift:数组读写器模式和 UICollectionView 更新

iPhone 更新日期弹出窗口?

ios - 在 TextField 中放置 PlaceHolder

ios - NSAttributedString 删除线使我的属性文本消失

ios - 将 NSData 字节转换为自定义对象

ios - 如何使用自动布局更改uiview的高度?