应用程序在视图中崩溃为标题部分:



我的应用程序中集成了一个表格视图。代码是这样的

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
    return [sortedDates count];
}
- (nullable UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section {
    EventHeaderView *headerView = (EventHeaderView *)[tableView dequeueReusableHeaderFooterViewWithIdentifier:@"eventHeader"];
    if(headerView == nil) {
        headerView = [[EventHeaderView alloc] initWithReuseIdentifier:@"eventHeader"];
    }
    NSString *date = [sortedDates objectAtIndex:section]; **// app crashes here**
    NSString *formatHeaderStr = [NSDate stringFromDate:[NSDate dateFromString:date withFormat:@"yyyy-MM-dd"] withFormat:@"EE, MMMM dd yyyy"];
    [headerView.dateLbl setText:formatHeaderStr];
    [headerView.addEventBtn setTag:(section+1)*100];
    [headerView.addEventBtn addTarget:self action:@selector(addEventBtnClicked:) forControlEvents:UIControlEventTouchUpInside];
    [headerView layoutSubviews];
    return headerView;
}

节数返回"sortedDates"计数,但仍在 [sortedDates objectAtIndex:section] 上崩溃。它也发生在我代码中的其他地方。

我不明白如何解决这些问题。这些方法一个接一个地被调用的延迟非常小,但当数组到达 viewForHeader 方法时,它似乎仍然是空的。

请帮忙。

使用它从sortedDates获取值。

NSString *date = [sortedDates objectAtIndex:section-1];

如果您使用的是 objectAtIndex 方法,请确保您的数组中包含那么多对象。所以在您的情况下,只需检查

if (section >= 0 && section < [sortedArray count])
{
    NSString *date = [sortedDates objectAtIndex:section];
}

还要检查 sortedDate 对象是否未意外释放。

最新更新