How do I delete all objects from my persistent store in Core Data?

后端 未结 8 987
遇见更好的自我
遇见更好的自我 2020-12-01 03:59

I have Core Data working in my app. So, I fetch an XML file, parse the data into model objects and insert them into core data. They are saved in the persistent store and I

8条回答
  •  一生所求
    2020-12-01 04:46

    import Foundation
    import CoreData
    
    extension NSManagedObjectContext
    {
        func deleteAllData() {
            guard let persistentStore = persistentStoreCoordinator?.persistentStores.last else {
                return
            }
    
            guard let url = persistentStoreCoordinator?.url(for: persistentStore) else   {
                return
            }
    
            performAndWait { () -> Void in
                self.reset()
                 do
                {
                    try self.persistentStoreCoordinator?.remove(persistentStore)
                    try FileManager.default.removeItem(at: url)
                    try self.persistentStoreCoordinator?.addPersistentStore(ofType: NSSQLiteStoreType, configurationName: nil, at: url, options: nil)
                 }
                catch { /*dealing with errors up to the usage*/ }
             }
        }
    }
    

    Thanks @Julian Krol - updated answer for Swift 5.1

提交回复
热议问题