删除NSManagedObjectContext中的所有记录

Mic*_*ael 15 cocoa records core-data

有没有办法删除所有的记录NSManagedObjectContext

我正在使用以下代码插入数据:

NSManagedObjectContext * context = [[NSApp delegate] managedObjectContext];
NSManagedObject        * basket  = nil;

basket = [NSEntityDescription insertNewObjectForEntityForName:@"ShoppingBasket"
                                       inManagedObjectContext: context];  
[basket setValue:[firstSelectedObject valueForKey:@"accessoryID"]
          forKey: @"accessoryID"];
Run Code Online (Sandbox Code Playgroud)

如何删除所有记录?我想要的东西就像"删除:"功能,但要删除所有内容.

Jos*_*zzi 39

要删除给定实体的所有实例(我们将使用您的ShoppingBasket),您只需获取所有篮子然后删除它们即可.这只是几行代码:

NSManagedObjectContext * context = [self managedObjectContext];
NSFetchRequest * fetch = [[[NSFetchRequest alloc] init] autorelease];
[fetch setEntity:[NSEntityDescription entityForName:@"ShoppingBasket" inManagedObjectContext:context]];
NSArray * result = [context executeFetchRequest:fetch error:nil];
for (id basket in result)
    [context deleteObject:basket];
Run Code Online (Sandbox Code Playgroud)

非基于文档的应用程序中的替代方法是关闭与数据存储的连接,删除实际文件,然后重新连接(标准Core Data项目附带的模板代码将自动创建文件(如果不存在)).然后你有一个全新的空店.

请注意,代码示例忽略任何可能的错误.不要那样做.:-)