2016-12-09 1 views

Antwort

0

Sie können dies versuchen:

func deleteAllData(entity: String) 
{ 
    let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate 
    let managedContext = appDelegate.managedObjectContext 
    let fetchRequest = NSFetchRequest(entityName: entity) 
    fetchRequest.returnsObjectsAsFaults = false 

    do 
    { 
     let results = try managedContext.executeFetchRequest(fetchRequest) 
     for managedObject in results 
     { 
      let managedObjectData:NSManagedObject = managedObject as! NSManagedObject 
      managedContext.deleteObject(managedObjectData) 
     } 
    } catch let error as NSError { 
     print("Detele all data in \(entity) error : \(error) \(error.userInfo)") 
    } 
} 

Verbrauch:

self.deleteAllData("your_entityName") 

Schon gesehen: https://stackoverflow.com/a/33931528/2894160

-1

Hier ist der Code für Datensätze von Core Data zu löschen: // Benutzer löschen info von lokalem db

func deleteUserInfo() { 

    let context = appdelegate.managedObjectContext 
    let coord = appdelegate.persistentStoreCoordinator 

    let fetchRequest = NSFetchRequest(entityName: "User") 
    if #available(iOS 9.0, *) { 
     let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest) 
     //let predicate = NSPredicate(format: "id == %@", key) 
     //fetchRequest.predicate = predicate 
     do { 
      try coord.executeRequest(deleteRequest, withContext: context) 
     } 
     catch let error as NSError { 
      //Error handling 
     } 
     catch {} 
    } else { 
     // Fallback on earlier versions 

     do { 
     let users: NSArray = try appdelegate.managedObjectContext.executeFetchRequest(fetchRequest) 

     for user in users { 
      appdelegate.managedObjectContext.delete(user) 
     } 

     try appdelegate.managedObjectContext.save() 

     } catch let error as NSError { 
      //Error handling 
     } 
     catch {} 
    } 
} 
0

Am besten löschen Sie den Persistenzspeicher und fügen dann einen neuen hinzu, anstatt jede Entität zu durchlaufen (wenn Sie alle Entitäten von coredata löschen möchten).

func deletePersistentStoreCoordinator() {

do { 
     let url = self.applicationDocumentsDirectory.URLByAppendingPathComponent("YourDatabaseName.sqlite") 
     try self.persistentStoreCoordinator.destroyPersistentStoreAtURL(url, withType: NSSQLiteStoreType, options: nil) 
     try self.persistentStoreCoordinator.addPersistentStoreWithType(NSSQLiteStoreType, configuration: nil, URL: url, options: nil) 
    } 
    catch{ 

    } 
}