我有这段代码取自关于 SO 的几个类似问题,我不知道它为什么会崩溃。我遵循了已接受且显然正确的答案中的示例。
我有一个静态表,其中表的第一部分包含唯一的静态行。第二部分起初是空的,应该稍后由异步任务填充。首先numOfDynamicRows
是零,当异步任务完成时,这个值会变成我返回的字典的长度。当我使用reloadData
. 我试图调试代码,当涉及到它应该添加新行的部分时,它看起来像是崩溃了。
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
if (section == 0)
return 1;
else
return numOfDynamicRows;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
int section = indexPath.section;
int row = indexPath.row;
if (section == 0) {
return [super tableView:tableView cellForRowAtIndexPath:indexPath];
}
else {
HomeFeedCell *cell;
cell = [tableView dequeueReusableCellWithIdentifier:@"myCustomCell"];
if (!cell)
{
// create a cell
cell = [[HomeFeedCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"myCustomCell"];
}
return cell;
}
}
它与以下消息一起崩溃(这让我很困惑):
* 由于未捕获的异常“NSRangeException”而终止应用程序,原因:“* -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array”