代码之家  ›  专栏  ›  技术社区  ›  Noodledew

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

  •  0
  • Noodledew  · 技术社区  · 7 年前

    我要删除NSManagedObjects天气和当前的现有内容。

    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)
        }
    }
    

    但是,使用此代码,我在第3行得到一个错误,说明:

    未能推断泛型参数“resultType”

    1 回复  |  直到 7 年前
        1
  •  1
  •   vadian    7 年前

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

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

    然后您甚至可以省略结果类型

    let objects = try? context.execute(fetchRequest)
    

    还有一个打字错误。你可能是说

    context.deleteObject(object)
    

    在MacOS 10.11+/iOS 9.0+中,鼓励您使用 NSBatchDeleteRequest