這是一個相當簡單的界面,只有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