我已将iCloud集成到我的应用程序中,并且能够在我的持久存储中成功保存iCloud更改。目前,我正在做以下事情: -
//我的NSManagedObjectContext
(由主线程使用)声明为NSMainQueueConcurrencyType
performBlock
我也看到了以下方法: -
// NSManagedObjectContext(由主线程使用)声明为NSMainQueueConcurrency
类型
NSPrivateQueueConcurrency
类型作为并发类型的临时托管对象上下文performBlock
因此,两种方法都使用performBlock
将更改保存到持久性存储中。那么,任何方法都有什么特别的优势/劣势吗?
答案 0 :(得分:0)
最大,
一切都是权衡。使用子MOC的最大胜利是从父级隐式缓存状态,并且保存速度非常快。 (它们很快,因为它们只是将数据推送到子父级堆栈。您仍然需要从父级保存以保留数据。)
您的架构的缺点是远程保存发生在您的主循环上。如果它们花费了很多时间,并且保存有时会花费过多的时间,那么UI响应就会受到影响。
在回答您的问题时,-performBlock:调用不会更改这些事实。他们所做的只是将处理推迟到主循环的下一次迭代。
安德鲁