删除使用核心数据生成的所有表视图行

0 core-data ios

我有一个由核心数据生成的表视图(表view1)(entity1),我可以逐个删除行,但我想一次用一个按钮删除整个表,我该怎么做?

我有东西要删除整个交易,但问题是我有第二个表视图控制器(表view2),它也是由核心数据生成的(entity2),当我想删除"table view1"我也删除了"table view2"我只是想删除"table view1",其内容位于entity1 ..

我删除数据的代码是:

        NSURL *storeURL = [[managedObjectContext persistentStoreCoordinator] URLForPersistentStore:[[[managedObjectContext persistentStoreCoordinator] persistentStores] lastObject]];
        // lock the current context
        [managedObjectContext lock];
        [managedObjectContext reset];//to drop pending changes
        //delete the store from the current managedObjectContext
        if ([[managedObjectContext persistentStoreCoordinator] removePersistentStore:[[[managedObjectContext persistentStoreCoordinator] persistentStores] lastObject] error:nil])
        {
            // remove the file containing the data
            [[NSFileManager defaultManager] removeItemAtURL:storeURL error:nil];
            //recreate the store like in the  appDelegate method
            [[managedObjectContext persistentStoreCoordinator] addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeURL options:nil error:nil];//recreates the persistent store
        }
        [managedObjectContext unlock];
        //that's it !

        [self.tableView reloadData];
Run Code Online (Sandbox Code Playgroud)

Mar*_*n R 9

您必须获取实体的所有对象并将其删除:

NSManagedObjectContext *context = ...; // your managed object context 
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Entity1"];
NSError *error;
NSArray *objects = [context executeFetchRequest:request error:&error];
if (objects == nil) {
    // handle error
} else {
    for (NSManagedObject *object in objects) {
        [context deleteObject:object];
    }
    [context save:&error];
}
Run Code Online (Sandbox Code Playgroud)