我在使用tableView時遇到了一些麻煩。 在這種情況下,我有4個部分。cellForRowAtIndexPath - objectAtIndex超出範圍
部分0,1,2有1個單元格。 第3節有2個單元。
現在我接收到錯誤,
終止應用程序由於未捕獲的異常 'NSRangeException',原因: ' - [__ NSCFArray objectAtIndex:]:索引(1)超過界限(1)'
現在我明白這是試圖引用不在該部分內的單元格嗎?
我在哪裏掙扎是每個部分的計數是正確的,就像下面一樣。
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
NSLog(@"Sections: %d", [_timetableDataArray count]);
return [_timetableDataArray count];
}
這返回,如所預期,
節數:4
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSDictionary *sectionContents = [_timetableDataArray objectAtIndex: section];
NSLog(@"Section %d contains %d items", section, [sectionContents count]);
return [sectionContents count];
}
該日誌用於上述的回報,
第3包含2項
第0包含1項
第1包含1項
第2部分包括1項
這是完全正確的。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSLog(@"Iterating --- section: %d row: %d", indexPath.section, indexPath.row);
}
上述方法甚至從來沒有得到NSLog。它在此之前崩潰。
如果我改變我的數據數組,所以每個部分有2個項目,一切工作正常。
這是我的數據,http://pastebin.com/q5rbsvC8 我只是不明白這個崩潰來自何時numberOfRowsInSection返回每節的正確的行數。
我原本以爲這可能是一個0索引的問題,但我改變了這些從1開始,並沒有幫助。
任何幫助/建議,非常感謝。
感謝, 阿德里安
你有沒有嘗試並返回'cellForRowAtIndexPath'中的UITableViewCell?你可以在這裏使用模板代碼 – MrBr
嗨,是的,我加載數據之前返回一個測試單元格,這看起來很好。一旦我爲我的tableView設置了數據並嘗試重新加載它,就會發生錯誤。謝謝。 – Adrian
所以當你調用'[_tableView reloadData]'時它只會崩潰? – MrBr