Call this method if you want subsequent insertions, deletion, and selection operations (for example, cellForRowAtIndexPath: andindexPathsForVisibleRows) to be animated simultaneously. This group of methods must conclude with an invocation ofendUpdates. These method pairs can be nested.

If you do not make the insertion, deletion, and selection calls inside this block, table attributes such as row count might become invalid. ---------这句话没懂

You should not call reloadData within the group; if you call this method within the group, you will need to perform any animations yourself.

[CATransaction begin];

[CATransaction setCompletionBlock:^{
// animation has finished
}];

// do some work

[CATransaction commit];

[tableView beginUpdates];
[tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:tmp] withRowAnimation:UITableViewRowAnimationAutomatic];
[tableView endUpdates];

  [tableView beginUpdates];
[tableView endUpdates];