删除/重置核心数据中的所有条目?

删除/重置核心数据中的所有条目?

您知道有什么方法可以删除全部存储在Core数据中的条目吗?我的模式应该保持不变;我只想把它重置为空白。


编辑

我希望通过编程来实现这一点,这样用户就可以在reset纽扣。



莫回无
浏览 544回答 3
3回答

FFIVE

您可以删除SQLite文件-但是我选择通过使用函数单独清除表来做到这一点:- (void) deleteAllObjects: (NSString *) entityDescription  {     NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];     NSEntityDescription *entity = [NSEntityDescription entityForName:entityDescription inManagedObjectContext:_managedObjectContext];     [fetchRequest setEntity:entity];     NSError *error;     NSArray *items = [_managedObjectContext executeFetchRequest:fetchRequest error:&error];     [fetchRequest release];     for (NSManagedObject *managedObject in items) {         [_managedObjectContext deleteObject:managedObject];         DLog(@"%@ object deleted",entityDescription);     }     if (![_managedObjectContext save:&error]) {         DLog(@"Error deleting %@ - error:%@",entityDescription,error);     }}我选择逐个表这样做的原因是,它使我在编程时确认,删除表的内容是明智的,而且没有我更愿意保存的数据。这样做比仅仅删除文件要慢得多,如果这个方法花费太长时间,我将更改为文件删除。

回首忆惘然

更新iOS 10+解决方案使用NSBatchDeleteRequest删除实体中的所有对象,而不必将它们加载到内存中或迭代它们。//&nbsp;create&nbsp;the&nbsp;delete&nbsp;request&nbsp;for&nbsp;the&nbsp;specified&nbsp;entitylet&nbsp;fetchRequest: &nbsp;NSFetchRequest<NSFetchRequestResult>&nbsp;=&nbsp;MyEntity.fetchRequest()let&nbsp;deleteRequest&nbsp;=&nbsp;NSBatchDeleteRequest(fetchRequest:&nbsp;fetchRequest) &nbsp;//&nbsp;get&nbsp;reference&nbsp;to&nbsp;the&nbsp;persistent&nbsp;containerlet&nbsp;persistentContainer&nbsp;=&nbsp;(UIApplication.shared.delegate&nbsp;as!&nbsp;AppDelegate).persistentContainer &nbsp;//&nbsp;perform&nbsp;the&nbsp;deletedo&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;persistentContainer.viewContext.execute(deleteRequest)}&nbsp;catch&nbsp;let&nbsp;error&nbsp;as&nbsp;NSError&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;print(error)}此代码已为IOS 10和SWIFT 3更新。这个问题.资料来源:核心数据:删除实体所有实例的最快方法(包括目标C代码)什么是新的核心数据(WWDC 2015视频)什么是新的核心数据(WWDC 2016视频)如何在iOS 10中使用核心数据核心数据SWIFT3.0的新特性
打开App,查看更多内容
随时随地看视频慕课网APP