我使用以下内容在persistentContainer中加载了一个特定的URL文件:
// MARK: Core Data Stack
lazy var persistentContainer: NSPersistentContainer = {
os_log("In persistent Container", log: OSLog.default, type: .debug)
// set URL to game file location
let urls = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let docURL = urls[urls.endIndex-1]
let storeURL = docURL.appendingPathComponent(Singleton.sharedInstance.mainGameFileName!)
let container = NSPersistentContainer(name: "RefGameData")
container.persistentStoreDescriptions = [NSPersistentStoreDescription(url: storeURL)]
container.loadPersistentStores(completionHandler: { (storeDescription, error) in
if let error = error as NSError? {
fatalError("Unresolved error \(error), \(error.userInfo)")
}
})
return container
}()
我想删除该特定的URL文件,并在需要加载不同游戏的数据时将其替换为其他文件。我无法在apple文档中找到与container.unloadPersistentStores(....)
我是Swift编程的noobie,任何想法都会受到赞赏。
答案 0 :(得分:1)
您需要使用持久性存储协调器。 NSPersistentContainer
有一个名为persistentStoreController
的属性, 有一个名为remove
的方法,可以满足您的需求。
请记住,如果删除持久性存储,则必须绝对确保内存中没有从该存储加载的任何托管对象。它们将不再有用,如果您尝试使用它们可能会使应用程序崩溃。