Ios NSManagedObjectContext子队列与即时performblock
我已经将iCloud集成到我的应用程序中,并且我能够将iCloud更改成功地保存在我的永久存储中。目前,我正在做以下工作:- //我的Ios NSManagedObjectContext子队列与即时performblock,ios,core-data,icloud,nsmanagedobjectcontext,Ios,Core Data,Icloud,Nsmanagedobjectcontext,我已经将iCloud集成到我的应用程序中,并且我能够将iCloud更改成功地保存在我的永久存储中。目前,我正在做以下工作:- //我的NSManagedObjectContext(由主线程使用)声明为NSMainQueueConcurrencyType 侦听iCloud通知 使用performBlock 我还看到了以下方法:- //NSManagedObjectContext(由主线程使用)声明为NSMainQueueConcurrencyType 在iCloud发送通知时执行的方法中,创建一个
NSManagedObjectContext
(由主线程使用)声明为NSMainQueueConcurrencyType
performBlock
NSMainQueueConcurrency
Type
NSPrivateQueueConcurrency
typeperformBlock
performBlock
将更改保存到持久存储。那么,任何方法都有什么特别的优点/缺点吗 Max
一切都是权衡。使用子MOC的最大好处是隐式缓存来自父级的状态,并且保存速度非常快。(它们的速度很快,因为它们只是将数据向上推到子-父堆栈中。您仍然需要从父堆栈中保存数据以持久化数据。)
您的体系结构的缺点是,从远处进行的保存发生在主循环上。如果它们花费了很多时间,并且有时可能会花费过多的时间进行保存,那么用户界面的响应性就会受到影响
在回答您的问题时,-performBlock:调用不会改变这些事实。他们所做的只是将处理推迟到主循环的下一次迭代
安德鲁