gpt4 book ai didi

iOS - 核心数据 - 创建一个空的 NSManagedObjectContext

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

我的核心数据堆栈如下:

  • 私有(private)队列管理对象上下文(父级)
  • 主队列管理对象上下文(子级)

我的问题是,我想仅使用从服务器下载的数据创建搜索功能。理想的解决方案是创建一个新的空 NSManagedObjectContext(用于临时写入/读取上下文),而不需要有 Persistent StoreParent 但 Xcode 会崩溃。

还有其他选择吗?

PS:另一种解决方案是使用一个 tempAttribute 标志( bool 属性),仅在当前上下文(其父上下文是私有(private)队列管理对象上下文,但我想避免它。

最佳答案

你的托管对象上下文确实需要一个 NSPercientStore,但是有一个 type of NSPersistentStore 、NSInMemoryStoreType,它实际上不会将数据持久化到磁盘。我认为这就是您正在寻找的。下面是一些使用内存中持久存储创建托管对象上下文的 Swift 代码:

// Create Core Data Stack
guard let dataModel = NSManagedObjectModel.mergedModel(from: [Bundle.main]) else {return}
let psc = NSPersistentStoreCoordinator(managedObjectModel: dataModel)
do {
try psc.addPersistentStore(ofType: NSInMemoryStoreType,
configurationName: nil,
at: nil,
options: nil);
} catch {
print("Error creating store: \(error)")
}
let moc = NSManagedObjectContext(concurrencyType: .privateQueueConcurrencyType)
moc.persistentStoreCoordinator = psc

一个很好的后续问题是:如果不是所有的类型都是持久的,为什么 Apple 称它为 NS持久Store? 好吧,也许他们添加了 >内存中存储macOS 10.4被卡住发布之前最后一刻的存储类型,没有时间更改名称:)

您还应该阅读 differences among store types

关于iOS - 核心数据 - 创建一个空的 NSManagedObjectContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56041189/

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