iphone - reloadRowsAtIndexPaths 后未调用 cellForRowAtIndexPath

标签 iphone ios objective-c uitableview core-data

作为Apple Doc说,

Reloading a row causes the table view to ask its data source for a new cell for that row.

我将 UITableView 与 NSFetchedResultsController 相结合:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller
{
    if (self.tableView.isEditing) 
    {
        [self.tableView setEditing:NO animated:YES];
    }
    [self.tableView beginUpdates];
}

- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller
{
    [self.tableView endUpdates];

    [self updateTabItemBadge];
    [self.noDataView setHidden:![self isNoData]];

    WXINFO(@"controllerDidChangeContent");
}

在上述两个函数之间,我重新加载目标单元格:

enter image description here

    case NSFetchedResultsChangeUpdate: {
        if (indexPath) {
            [tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
        }

enter image description here

我在 Line1563 处设置了一个断点,以检查 reloadRowsAtIndexPaths 是否已被调用,但在那之后,- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath * )indexPath 未被调用。

所以,我的手机无法更新。

谁能告诉我为什么?谢谢。

最佳答案

将其包裹在:

[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
[tableView endUpdates];

关于iphone - reloadRowsAtIndexPaths 后未调用 cellForRowAtIndexPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17439383/

相关文章:

Ios 在 NSMutableArray 中添加对象

ios - 自定义表格单元格中的 stackview

iphone - iPhone 上端口 80 上的 Web 服务器

ios - 翻转和旋转

iphone - 如何在iPhone模拟器中安装iPhone应用程序

ios - 带解析API IOS的​​JSON反序列化

ios - AlertViewController - 其 View 不在窗口层次结构中问题

ios - 具有动态单元格高度的 UITableview 中的自动布局

iphone - 动画 UIView 及其子层

iphone - UITableView 自定义单元格显示奇怪的结果?