iphone – NSPersistentStoreCoordinator线程安全吗?

iphone – NSPersistentStoreCoordinator线程安全吗?,第1张

概述我正在使用一个使用Core Data的iPhone应用程序.应用程序调用Web服务,解析生成的 XML文件,然后在我的应用程序中创建或修改Core Data对象.我已经处理Web服务调用和异步解析,但是我已经将解析的数据传回主线程来 *** 作Core Data对象.我也想在后台线程中运行这个进程. (1-2秒的暂停并不能为一个伟大的用户体验) 明显的方法是为后台线程专门创建一个托管对象上下文,但是在Ap 我正在使用一个使用Core Data的iPhone应用程序.应用程序调用Web服务,解析生成的 XML文件,然后在我的应用程序中创建或修改Core Data对象.我已经处理Web服务调用和异步解析,但是我已经将解析的数据传回主线程来 *** 作Core Data对象.我也想在后台线程中运行这个进程. (1-2秒的暂停并不能为一个伟大的用户体验)

明显的方法是为后台线程专门创建一个托管对象上下文,但是在Apple’s Core Data Programming Guide中我读了这一行:

A persistent store coordinator provIDes to its managed object contexts the façade of one virtual store. For completely concurrent operations you need a different coordinator for each thread.

所以这里的catch:你不能有两个NSPersistentStoreCoordinators提供对同一个商店的访问.但是,marcus Zarra的核心数据书认为NSPersistentStoreCoordinator是线程安全的,并且将序列化I / O请求(第157页).

有人可以为我清除这个吗?在另一个线程上运行第二个托管对象上下文是否可能与主线程共享相同的NSPersistentStoreCoordinator?还是更简洁的是NSPersistentStoreCoordinator线程安全?

解决方法 Zarra后来指出,上下文锁定了商店,所以在线程之间使用相同的NSPersistentStoreCoordinator是可以的.

Although the NSPersistentStoreCoordinator is not thread safe either,the NSManagedobjectContext kNows how to lock it properly when in use. Therefore,we can attach as many NSManagedobjectContext objects to a single NSPersistentStoreCoordinator as we want without fear of collision.

总结

以上是内存溢出为你收集整理的iphone – NSPersistentStoreCoordinator线程安全吗?全部内容,希望文章能够帮你解决iphone – NSPersistentStoreCoordinator线程安全吗?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1019287.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存