Flo*_*lke 9 core-data grand-central-dispatch
我必须NSFetchedResultsController
在后台线程上执行fetch .
我目前的解决方案结构如下:
dispatch_queue_t fetchQueue = dispatch_queue_create("backgroundfetching", NULL);
dispatch_async(fetchQueue,^{
// 1. Create NSManagedObjectContext
// 2. Create NSFetchRequest
// 3. Create NSFetchedResultsController
// 4. PerformFetch
dispatch_async(dispatch_get_main_queue(),^{
[[self table] reloadData];
});
});
dispatch_release(fetchQueue);
Run Code Online (Sandbox Code Playgroud)
我的第一次测试运行良好,但这是适当的方式吗?
由于获取的结果控制器旨在控制定义表视图的数据,因此它属于运行UI的前台线程/操作.把它放在后台线程上是没有意义的,因为你会失去首先使用它的所有优点.
我还担心跨异步线程发送FRC委托消息的影响.我不确定会有多可靠.
说了这么多,你的实现草图看起来很好.
归档时间: |
|
查看次数: |
5284 次 |
最近记录: |