Swift核心数据:如何获取数组中的所有项目?

时间:2018-08-21 10:45:36

标签: ios swift core-data fetch nsmanagedobject

我想删除NSManagedObjects Weather and Current的现有内容。

let entityNames = ["Weather", "Currently"]
for entityName in entityNames {
    let fetchRequest = NSFetchRequest(entityName: entityName)
    let objects = try(context.execute(fetchRequest)) as? [NSManagedObject]
    for object in objects! {
        context.deletedObjects(object)
    }
}

但是使用此代码,我在第三行指出了一个错误:

  

无法推断出通用参数'ResultType'

1 个答案:

答案 0 :(得分:1)

您必须指定获取请求的通用类型

let fetchRequest = NSFetchRequest<NSManagedObject>(entityName: entityName)

那么您甚至可以省略结果类型

let objects = try? context.execute(fetchRequest)

有一个错字。你可能是说

context.deleteObject(object)

在macOS 10.11 + / iOS 9.0+中,建议您使用NSBatchDeleteRequest