gpt4 book ai didi

ios - 具有子上下文的核心数据多线程

转载 作者:行者123 更新时间:2023-11-29 03:28:25 25 4
gpt4 key购买 nike

我刚刚开始学习核心数据。当谈到多线程时,一些博客说在这种情况下我们应该使用子上下文(通过创建上下文并设置其父上下文)并只调用performBlock:方法。然而其他一些博客说我们应该避免这种方法,因为它引入了许多错误。我刚刚开始开发一个操作大型数据库的应用程序,项目经理投票支持 Core data(而不是 SQLLite)。任何人都可以给我一些指示吗?我应该使用子上下文策略(自 iOS 5 以来引入)还是有更好的方法来使用 Core Data 执行多线程?谢谢。

最佳答案

Should i use the children contexts strategy (introduced since iOS 5) or is there a better way to perform multithreading with Core Data ?

除了您提到的概念之外,托管对象上下文还具有内置的并发支持,无需父上下文(参见 https://developer.apple.com/library/ios/releasenotes/DataManagement/RN-CoreData/index.html)。

如果您使用 initWithConcurrencyType: 创建一个,您可以使用 performBlock:performBlockAndWait: 并且线程将为您处理,假设您遵循上面链接中概述的基本模式。父/子上下文方法可以帮助您进行同步。

这里还有一个基于 NSOperation 的方法:http://www.objc.io/issue-2/common-background-practices.html .我个人不会使用它,因为内置的 API 已经足够了,但是这篇文章写得很好,应该让您对发生的事情有一个很好的了解。

如何实现取决于您应用的需求。

some other blogs say that we should avoid this approach since it has introduced many bugs.

我会忽略它们,专注于为自己编写干净的代码。有很多使用多线程 + Core Data 的应用程序没有错误。

关于ios - 具有子上下文的核心数据多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20148981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com