ios CellForRowAtIndexPath is called too much, causing a NSRangeException
我已经创建了一个包含两个数据的数组:
1 2 3 4 5 6 7 8 | { name ="Foo"; nbLikes = 11; }, { name ="Bar"; nbLikes = 5; } |
问题是,当我想用?? cellForRowAtIndexPath 解析这些数据时,我得到了一个 NSRangeException,因为他们试图查看我数组的索引 2。
* Terminating app due to uncaught exception 'NSRangeException', reason: '* -[__NSArrayM objectAtIndex:]: index 2 beyond bounds [0 .. 1]'
这是 CellForRowAtIndePath 中的代码:
1
2
3
4
5
6
7
8 NSString *cellLike = @"cellFanItem";
customCell *cell = [tableView dequeueReusableCellWithIdentifier:cellLike];
if (cell == nil)
cell = [customCell new];
cell.primaryLabel.text = [tmpfanname objectAtIndex:indexPath.row];
cell.secondaryLabel.text = [tmpNbLike objectAtIndex:indexPath.row];
cell.backgroundColor=RGB(0, 0, 0);
return (cell);
有人知道它为什么叫太多吗?有什么解释吗?
您的数组在您正在访问的索引处没有对象。
设置numberofrowsinsection方法返回数组计数。
检查 numberOfRowsInSection 函数。数组 tmpfanname 和 tmpNbLike 应该有相同数量的项目
-
(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{return [tmpfanname 计数];
}