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

后端 未结 8 1002
遇见更好的自我
遇见更好的自我 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:34

    Based on @Nicolas Manzini answer I have wrote a Swift 2.1 version with little improvements. I have added an extension to NSManagedObjectContext. Full code below:

    import Foundation
    import CoreData
    
    extension NSManagedObjectContext
    {
        func deleteAllData()
        {
            guard let persistentStore = persistentStoreCoordinator?.persistentStores.last else {
                return
            }
    
            guard let url = persistentStoreCoordinator?.URLForPersistentStore(persistentStore) else {
                return
            }
    
            performBlockAndWait { () -> Void in
                self.reset()
                do
                {
                    try self.persistentStoreCoordinator?.removePersistentStore(persistentStore)
                    try NSFileManager.defaultManager().removeItemAtURL(url)
                    try self.persistentStoreCoordinator?.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil)
                }
                catch { /*dealing with errors up to the usage*/ }
            }
        }
    }
    

提交回复
热议问题