Ios 在批更新删除时禁用NSFetchedResultsController生成的动画
我目前正在使用NSFetchedResultsController在UITableView实例中显示内容 在某个时候,我在核心数据中执行批删除,然后执行批插入。因此,NSFetchedResultsControllerDelegate将逐个执行插入和删除操作。这给GUI带来了一种奇怪的外观,您可以看到行被逐个删除或插入 是否有可能实施 NSFetchedResultsControllerDelegate是否一次清除或插入一批行,而不是迭代执行Ios 在批更新删除时禁用NSFetchedResultsController生成的动画,ios,animation,nsfetchedresultscontroller,Ios,Animation,Nsfetchedresultscontroller,我目前正在使用NSFetchedResultsController在UITableView实例中显示内容 在某个时候,我在核心数据中执行批删除,然后执行批插入。因此,NSFetchedResultsControllerDelegate将逐个执行插入和删除操作。这给GUI带来了一种奇怪的外观,您可以看到行被逐个删除或插入 是否有可能实施 NSFetchedResultsControllerDelegate是否一次清除或插入一批行,而不是迭代执行 将NSFetchedResultsControlle
对于NSFetchedResultsController,我使用通常的惰性getter方法,因此我可以将其实例变量设置为nil,tableView重载将创建一个新的实例变量 e、 g:
// returns a NSFetchedResultsController that has performed its fetch
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController) {
return _fetchedResultsController;
}
_fetchedResultsController = [NSFetchedResultsController alloc] initWith...
if (![_fetchedResultsController performFetch:&error]) {
...
}
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
- (void)batchRequestWithoutAnimation {
_fetchedResultsController.delegate = nil;
// mass insert/delete
_fetchedResultsController = nil;
[self.tableView reloadData]; // tableView dataSource methods call
// [self fetchedResultsController],
// which will create a new one
}