gpt4 book ai didi

ios - 如何针对 CoreData 中的多个关系执行复合查询

转载 作者:行者123 更新时间:2023-11-29 00:43:19 24 4
gpt4 key购买 nike

我正在寻找一些帮助来理解 NSPredicates 以及如何查询 CoreData。这是我所拥有的:

我有两个实体:1. Capture 表示对某些数据的“捕获”,它与 2. 身份标签有很多关系。

我希望实质上从一组特定的“捕获”中获取一组“身份”标签。即我想知道所有名称为“X”的捕获的唯一身份,这些身份也被标记为 Int“y”。

在 swift 中,我会这样建模:

let captures: [Capture]
let identities = captures.flatmap({ $0.identities }).filter({ $0.id == "y" })
let uniqueIdentitiesOfParticularType: Set<Identity> = Set(identities.flatMap({ $0.name })

有什么帮助吗?

最佳答案

首先,一定要从 Predicate Programming Guide 开始,其中详细介绍了更多内容。请特别参阅“将谓词与核心数据一起使用”。

如果您想小心点错误,您的解决方案可能是这样的:

let request = NSFetchRequest(entityName: "Capture")
let id = "y"
request.predicate = NSPredicate(format: "id == %@", id)
let identities = try context.executeFetchRequest(request) as NSArray
let names = identities.valueForKeyPath("@distinctUnionOfObjects.name")

请注意,iOS 10 为此向 Swift 添加了更好的桥梁(您可能不需要 as NSArray),但我还没有真正探索它们。

有关 @distinctUnionOfObjects 及其 friend 的更多信息,请参阅 Collection Operators .

关于ios - 如何针对 CoreData 中的多个关系执行复合查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38965433/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com