这是一个相当简单的界面,只有appdelegate和viewcontroller处理事物。UITableView崩溃而没有错误
我有一个UITableView,显示指定患者的1到13个图像大拇指。我正在使用包含单个UIImageView的自定义单元格来显示大拇指。单元格中的UIImageView从已经通过HTTP请求加载的NSMutableArray加载到cellForRowAtIndexPath中。
HTTP服务器上每位患者的拇指位于患者文件夹中,分组在1-3个命名的系列文件夹中。当从iPad上的popOver中选择患者时,拇指表视图会加载HTTP服务器上患者文件夹中的第一个系列。
用户可以从popOver系列名称中为患者选择不同的系列。此时,所选系列的拇指通过HTTP请求获取并加载到拇指表视图中。
一切工作正常,除了我有一个病人,从患者popOver工作,但改变系列,或重新选择系列已经加载后,第一系列检索结果导致应用程序崩溃。它不会在模拟器中崩溃,只会在iPad上崩溃。当从xCode运行时,我可以看到在最后一次调用cellForRowAtIndexPath完成后没有任何错误显示在控制台中发生崩溃。如果我经过那一点,它立即崩溃。
我已经在appdelegate和viewController方法中实现了内存警告委托方法。我没有收到任何内存警告。
我发布了我的cellForRowAtIndexPath方法,以防万一我加载表视图时丢失了一些东西。
我在寻找除了记忆以外还有什么可疑的建议。有没有什么方法可以指出什么导致没有控制台的崩溃?
预先感谢任何帮助
约翰
更新:我加入我的第方法行,这不应该是一个问题的数量。
我现在确信问题不一定与我的代码,但与图像。除了这一名患者,我可以整天改变患者和/或患者图像系列而不会有任何问题。关于与此患者相关的一个或多个图像的某些内容正在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];
}
检查'thumbsArray'的大小,并与'tableView:numberOfRowsInSection:'比较。您可能需要在此处张贴更多的代码供人们查看。 – greg 2012-04-19 18:28:22
numberOfRowsInSection不应该是一个问题,因为它正在返回thumbsArray计数。我很确定我的问题是由于图像要么很大或者我没有正确管理它们而造成的。有没有办法检查图像大小? – user278859 2012-04-19 21:04:53
我将关于图像测试的问题添加到主要问题中。 – user278859 2012-04-19 21:16:42