UITableView崩溃没有错误

时间:2012-04-19 17:53:48

标签: ipad uitableview crash

这是一个相当简单的界面,只有appdelegate和viewcontroller处理事物。

我有一个UITableView,可以显示指定患者的1到13个图像大拇指。我正在使用包含单个UIImageView的自定义单元格来显示大拇指。单元格中的UIImageView从已通过HTTP请求加载的NSMutableArray加载到cellForRowAtIndexPath中。

HTTP服务器上每位患者的拇指都在患者文件夹中,分组为1-3个命名系列文件夹。当从iPad上的popOver中选择患者时,拇指表视图将加载HTTP服务器上患者文件夹中的第一个系列。

然后,用户可以从popOver系列名称中为患者选择不同的系列。此时,通过HTTP请求检索所选系列的拇指,并将其加载到拇指表视图中。

一切正常,除了我有1名患者,其中第一个系列从患者popOver选择患者后检索,但更改系列,或重新选择已加载的系列,导致应用程序崩溃。它不会在模拟器中崩溃,只会在iPad上崩溃。从xCode运行时,我可以看到崩溃发生在最后一次调用cellForRowAtIndexPath完成后,控制台中没有显示任何错误。如果我超过这一点,它会立即崩溃。

我已经在appdelegate和viewController方法中实现了内存警告委托方法。我没有得到任何记忆警告。

我在下面发布我的cellForRowAtIndexPath方法,以防万一我在加载表视图时遗漏了一些东西。

我正在寻找除了记忆之外还有什么可怀疑的建议。有没有办法可以在没有控制台的情况下获得导致崩溃的原因?

提前感谢您提供任何帮助

约翰

更新:我在section方法中添加了我的行数,这应该不是问题。

我现在确信问题不一定是我的代码,而是图像。除了这一位患者,我可以整天改变患者和/或患者的图像系列,没有任何问题。关于与该患者相关的一个或多个图像的某些东西正在消耗iPad中的记忆。每位患者有1或2个X射线,其原始大小在1到2兆字节之间。我将它们保存到磁盘文件以便通过iPad检索时,将文件大小(压缩质量)降低到300kb以下。在一个系列中进口的总量不超过1.5mb。至少这是磁盘文件大小总计。一旦iPad获得文件大小,我不知道实际发生了什么。

在将导入的图像加载到表格视图中进行显示之前,有没有办法测试导入的图像的大小或损坏?

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    ImageCell *cell = [thumbsTableView dequeueReusableCellWithIdentifier:CellIdentifier];

    if (cell == nil) {
         cell = [[[ImageCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    cell.pImage.image = [thumbsArray objectAtIndex:indexPath.row];
    return cell;
}


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
   return [thumbsArray count];

}

1 个答案:

答案 0 :(得分:0)

您是否尝试设置一些断点进行调试?从您发布的代码中,我看不出任何问题。你启用了NSZombie吗?