0

我有这段代码取自关于 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”

4

0 回答 0