2017-01-20 2 views
0

にロードされたpersistentStoreを削除:
私は、以下のものを使用してpersistentContainerで特定のURLのファイルをロードしたpersistentContainer

// 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のマニュアルでpersistentContainerを見つけることができませんでした。container.unloadPersistentStores(....)

私はSwiftプログラミングのnoobieであり、どんな考えにも感謝します。

答えて

0

永続的ストアコーディネータを使用する必要があります。 NSPersistentContainerにはpersistentStoreControllerというプロパティがあり、というにはremoveというメソッドがあり、探しているものがあります。

永続ストアを削除する場合は、そのストアからロードされたメモリ内の管理対象オブジェクトがないことを確認する必要があります。彼らはもう役に立たず、あなたがそれらを使ってみるとアプリケーションがクラッシュするかもしれません。

関連する問題