gpt4 book ai didi

ios - 核心数据测试 : force external storage on iOS

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

我正在尝试测试核心数据的外部存储。有没有办法强制核心数据将数据写入文件?添加大数据/图像似乎不起作用。

enter image description here

https://stackoverflow.com/a/7926505/429763

func setupOnDiskTestStore() {
let mom = NSManagedObjectModel.mergedModel(from: [Bundle.main, Bundle(for: type(of: self))])
psc = NSPersistentStoreCoordinator(managedObjectModel: mom!)
let store = try! psc.addPersistentStore(ofType: NSSQLiteStoreType,
configurationName: nil,
at: storeURL(),
options: nil)
expect(store).notTo(beNil())

moc = NSManagedObjectContext(concurrencyType: .mainQueueConcurrencyType)
moc.persistentStoreCoordinator = psc
}

最佳答案

没有办法强制它使用外部存储。该复选框表明这是允许的,但没有办法使其成为必需的。正如您链接到的页面中所述,它与数据的大小有关,因此较大的数据 blob 将存储在外部。

仅用于测试 - 您可以检查外部存储目录的内容以查看其中有什么。这是完全没有记录的,因此您不能在应用程序中依赖它,但它可能对测试有用。数据位于与持久存储文件同一目录中的隐藏目录中。例如,如果您的持久存储名为 MyData.sqlite 并且位于应用程序支持目录中(这是 NSPercientContainer 放置它的位置,除非您告诉它使用不同的位置) ),那么外部存储(如果有)将位于 Application Support/.MyData_SUPPORT/_EXTERNAL_DATA/ 中。每个外部存储的数据对象将有一个文件。

您无法按名称将文件与托管对象进行匹配,因为文件名是 UUID,而 UUID 在代码中不可用。但是,如果您要创建一个启用了外部存储的新托管对象,然后您发现该目录中有一个新文件,您就会知道该新文件对应于该新对象。

关于ios - 核心数据测试 : force external storage on iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53394133/

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