您知道删除Core Data中存储的所有条目的方法吗?我的架构应该保持不变; 我只是想把它重置为空白.
编辑
我希望以编程方式执行此操作,以便用户可以实际按下reset按钮.
关于如何删除swift中的所有核心数据,我有点困惑.我创建了一个带IBAction链接的按钮.点击按钮我有以下内容:
let appDel: foodforteethAppDelegate = UIApplication.sharedApplication().delegate as foodforteethAppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext
Run Code Online (Sandbox Code Playgroud)
然后我用各种方法搞砸了尝试删除所有核心数据内容,但我似乎无法让它工作.我已经使用removeAll从存储的数组中删除但仍然无法从核心数据中删除.我假设我需要某种类型的for循环但不确定如何从请求中创建它.
我尝试应用删除单行的基本原则
func tableView(tableView: UITableView!, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath!) {
let appDel: foodforteethAppDelegate = UIApplication.sharedApplication().delegate as foodforteethAppDelegate
let context:NSManagedObjectContext = appDel.managedObjectContext
if editingStyle == UITableViewCellEditingStyle.Delete {
if let tv = tblTasks {
context.deleteObject(myList[indexPath!.row] as NSManagedObject)
myList.removeAtIndex(indexPath!.row)
tv.deleteRowsAtIndexPaths([indexPath!], withRowAnimation: UITableViewRowAnimation.Fade)
}
var error: NSError? = nil
if !context.save(&error) {
abort()
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,这个问题是当我单击一个按钮时,我没有indexPath值,而且我还需要遍历所有我无法用上下文做的值.
我知道如何删除CoreData中的单个对象我只是想知道是否有更简单的删除多个对象的方法?
对于单删除,您可以使用
[moc deleteObject:someManagedObject];
Run Code Online (Sandbox Code Playgroud)
但是没有多个对象的等价物.
目前我正在考虑做...
NSArray *arrayOfManagedObjectsToDelete = //...
for (SomeManagedObjectClass *managedObject in arrayOfManagedObjectsToDelete) {
[moc deleteObject:managedObject];
}
Run Code Online (Sandbox Code Playgroud)
但我不确定是否有另一种方法可以做到这一点?
理想情况下像...的方法
- (void)deleteObjects:(NSSet*)objects
Run Code Online (Sandbox Code Playgroud)
上NSManagedObjectContext或一些类似的方法.
之前已经提出过这个问题,但没有描述的解决方案足以满足我的应用需求.
在我们设置的通信协议中,服务器在每次执行同步时发送一组新的客户.早些时候,我们一直作为一个plist存储.现在想要使用Core Data.
可能有数千个条目.单独删除每一个需要很长时间.有没有办法删除Core Data中特定表中的所有行?
delete from customer
Run Code Online (Sandbox Code Playgroud)
sqlite中的这个调用立即发生.在Core1中单独浏览每一个可能需要30秒才能在iPad1上完成.
关闭Core Data是合理的,即删除持久性存储和所有托管对象上下文,然后放入sqlite并对表执行delete命令?在此过程中没有其他活动正在进行,因此我不需要访问数据库的其他部分.
我当前删除Core Data中所有特定类型对象的方法是迭代每个对象并手动删除,这相当昂贵.
使用今年添加到Core Data 的新批量更新,可以像这样完成吗?
我有一个应用程序,使用Core Data与SQLite商店.
在某些时候,我想删除几个实体的所有对象.可能有近千个物体.
从我通过谷歌和官方文档可以看出,删除对象的唯一方法是[managedObjectContext deleteObject:(Entity *)]为每个对象.但这意味着我必须首先获取所有对象.
数据存储只是sqlite,有没有办法简单地传递TRUNCATE TABLE ZENTITY;给它?
我在大多数从核心数据中删除所有条目的解决方案中找到的是三个步骤:
全部取出它们
全部删除它们
全部保存
还有其他选择......?
core-data ×7
ios ×5
objective-c ×3
cocoa-touch ×2
cocoa ×1
ios8 ×1
iphone ×1
sqlite ×1
swift ×1