我在使用tableView时遇到了一些麻烦。 在这种情况下,我有4个部分。
第0,1,2节有1个细胞。 第3节有2个单元格。
我现在收到错误,
由于未捕获的异常'NSRangeException'而终止应用程序,原因: ' - [__ NSCFArray objectAtIndex:]:index(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开始,但没有帮助。
非常感谢任何帮助/建议。
谢谢, 阿德里安
答案 0 :(得分:0)
在{/ 1}之前NSLog
尝试section
{/ 1}}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
查看是否有NSDictionary *sectionContents = [_timetableDataArray objectAtIndex: section];
的任何意外值?