Apple Docが言ったように、
行を再ロードすると、テーブル ビューはデータ ソースにその行の新しいセルを要求します。
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");
}
上記の 2 つの関数の間に、ターゲット セルをリロードします。
case NSFetchedResultsChangeUpdate: {
if (indexPath) {
[tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationNone];
}
が呼び出されたことを確認するために、Line1563 にブレークポイントを設定しましたreloadRowsAtIndexPaths
が、その後、- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
呼び出されませんでした。
そのため、セルを更新できませんでした。
誰かが理由を教えてくれますか?ありがとう。