在Swift 2中删除实体的核心数据

时间:2016-04-24 21:52:06

标签: swift core-data

如何在Swift中删除实体核心数据中的所有条目?

我想要一个deleteAll()方法,以便我可以清除数据库。

这是我到目前为止所做的:

func deleteAllCoreData() {
    let fetchRequest = NSFetchRequest(entityName: "DataPoint")
    let deleteRequest = NSBatchDeleteRequest(fetchRequest: fetchRequest)

    do {
        try coordinator.executeRequest(deleteRequest, withContext: managedContext)
    } catch let error as NSError {
        print("Could not fetch \(error), \(error.userInfo)")
    }

}

但它有一个错误:

  

未知命令类型(实体:DataPoint;谓词:   ((空值)); sortDescriptors:((null));类型:   NSManagedObjectIDResultType; )>

1 个答案:

答案 0 :(得分:1)

iOS 9添加了一个名为NSBatchDeleteRequest的新类,它允许您轻松删除与谓词匹配的对象,而无需将它们全部加载到内存中。以下是您如何使用它:

node.next = this;