gpt4 book ai didi

ios - 使用全局托管对象上下文来支持并发

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

我在阅读开发者文档时从未找到过这个问题的答案。

Core Data 中使用主队列上下文和私有(private)队列上下文时,使用全局 NSPrivateQueueConcurrencyTypeNSMainQueueConcurrencyType 上下文是一个很好的策略吗?在我的应用程序中以及在我的应用程序的整个生命周期内访问?

或者,我是否应该在每次需要使用 NSManagedObjectContext 时创建一个新实例?

我用过this documentation但它没有回答问题。

最佳答案

在大多数情况下,当前的最佳实践是从 NSPersistentContainer 开始。它的方法指向处理托管对象上下文的良好实践。

NSPersistentContainer 有一个使用主队列并发的属性 viewContext。顾名思义,它非常适合直接与 UI 和主队列一起使用。在这些情况下使用此上下文。不要创建新的主队列上下文。

它还有几种方法可以通过 newBackgroundContext()performBackgroundTask 在私有(private)队列上进行后台工作。在大多数情况下,当您需要进行后台工作时,您可以使用其中任何一个,而不必费心保留对长期存在的后台上下文的引用。需要注意的是,由于它们使用单​​独的后台队列,因此一个后台上下文可能会与另一个后台上下文同时执行。如果在您的情况下这似乎是可能的,您可能希望保留背景上下文以避免这种可能性。否则,您的后台上下文可能需要合并对其他后台上下文所做的更改,这可能会很快变得丑陋。

上述所有情况都有异常(exception),但这是一个很好的起点。如果由于某种原因这不适合您的应用,请返回另一个问题详细说明原因。

关于ios - 使用全局托管对象上下文来支持并发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46474844/

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