【发布时间】:2011-10-04 07:48:47
【问题描述】:
我目前通过多个并行执行的线程执行多个网络请求,因此每个线程都有一个托管对象上下文,每个线程都为 Core Data 实体设置属性值。所以这是两难境地,每个网络请求一次获取少量数据,并且这些请求有数百个(甚至数千个),我希望在所有网络操作发生后执行保存(这样我可以放心地假设保存的数据意味着所有内容都已成功下载并写入存储)。所以两个问题:
- 是在每个线程完成对上下文的写入后保存每个托管对象上下文,还是将所有托管对象上下文存储在内存中,最后循环遍历所有对象并执行保存? (写完后,很明显,随时随地保存会是更有效的方法,但我仍然想听听您的想法。)
- 有什么方法可以在不执行保存操作的情况下合并托管对象上下文?我目前正在通过 NSManagedObjectContextDidSaveNotification 通知合并上下文,想知道是否还有其他方法。
【问题讨论】:
-
你要产生“数千”个线程/操作?
-
是的,这听起来很愚蠢,我知道,但不会一下子全部完成,实际上只有 2 或 3 个线程会同时运行。目的是从 Web 服务器中提取数据。
标签: iphone objective-c core-data merge nsmanagedobjectcontext