场景: 我有一个 UITableView 显示从网络资源加载的数据。与该资源的同步可能需要一段时间才能完成,并且结果是零碎加载的。网络通信通过 NSOperationQueue 在后台发生。结果通过通知传递,控制权被转移回主线程以插入新结果。发生这种情况时,用户能够对表中的数据执行操作。
问题: 如果用户在同步发生时对表中的某一行执行删除操作,那么在表视图动画删除时行数很可能会发生变化(因为动画会导致多次迭代通过事件循环,并调用新结果的通知处理程序)。这会导致内部不一致异常。
同步导致对表视图上的 reloadData 调用,因为新结果是分批加载的。更重要的是,它会导致行数发生变化。
我一直无法找到一种方法来知道表格正在制作动画(或在完成时收到通知),以便我可以延迟新结果的处理。这可能吗?