我正在尝试交换用于 UITableView 的 NSFetchedResultsController,但它需要几行代码,我担心另一个线程可能会尝试在中途访问它并导致应用程序崩溃。这是我目前正在使用的代码:
如果获取的结果控制器不存在,则在 getter 中创建它,因此下次表视图尝试访问它时,它将重新生成。
- (void)regenerateFetchedResultsController
{
self.fetchedResultsController = nil;
[self loadData]; // Loads data into the fetched results controller.
[self.tableView reloadData];
}
我猜想如果在这个方法的中间有什么东西试图访问 FOC 会出错,所以我想我会使用 UITableView 的beginUpdates
和endUpdates
方法以及方法的开始和结束。
但是,似乎你不能在andreloadData
之间进行,所以我真的不知道还有什么可以尝试的。beginUpdates
endUpdates