gpt4 book ai didi

cocoa - NSManagedObjectContext() : `init()` was deprecated in iOS 9. 0:使用-initWithConcurrencyType

转载 作者:行者123 更新时间:2023-12-03 16:01:21 30 4
gpt4 key购买 nike

我正在处理Core Data Stack in Swift - Demystified但当我到达终点线时

self.context = NSManagedObjectContext()

我收到警告

`init()` was deprecated in iOS 9.0: Use -initWithConcurrencyType: instead

我发现我可以对 self.context = 执行以下操作之一

NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.ConfinementConcurrencyType)
NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.PrivateQueueConcurrencyType)

但由于 ConfinementConcurrencyType 现在也已弃用,只剩下 MainQueueConcurrencyTypePrivateQueueConcurrencyType。这两者有什么区别,我应该如何选择使用哪一个?我读过this documentation ,但我不太明白。

最佳答案

本质上,您将始终拥有至少 1 个具有 NSMainQueueConcurrencyType 的上下文,以及许多具有 NSPrivateQueueConcurrencyType 的上下文。 NSPrivateQueueConcurrencyType 通常用于在后台保存或提取内容到核心数据(例如尝试与 Web 服务同步记录)。

NSMainQueueConcurrencyType 创建一个与主队列关联的上下文,非常适合与 NSFetchedResultsController 一起使用。

默认核心数据堆栈使用带有 NSMainQueueConcurrencyType 的单个上下文,但您可以通过利用多个 NSPrivateQueueConcurrencyType 来执行任何不影响用户界面。

关于cocoa - NSManagedObjectContext() : `init()` was deprecated in iOS 9. 0:使用-initWithConcurrencyType,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32064295/

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