gpt4 book ai didi

objective-c - NSPredicate 过滤复杂对象数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:58:00 25 4
gpt4 key购买 nike

所以,基本上,问题是,我有一个对象,我们称它为“产品”

struct Product {
let categories: [Category]
}

类别看起来像这样:

struct Category {
let id: Int
}

我需要的是创建 NSPredicate,它会检查类别列表是否包含特定 ID 的类别。现在确定是否可行,但也许有比使用简单的 Int 数组创建另一个属性更好的解决方法?更新:NSPredicate 是必需的,因为我需要在 Realm 数据库过滤器查询中使用它。

最佳答案

NSPredicate 的正确格式是:

let predicate = NSPredicate(format: "ANY categories.id == %@", argumentArray: [1])

以上示例将返回所有 Products,其 categories 数组包含 Productid 为 1。

当然,这是假设您只查找单个 id 的类别。如果您需要检查多个 ids,您可以使用 OR 修改上面的内容。

注意:我用 NSArray 测试了上面的谓词,而不是 Realm。但是,如果您查看 Realm 谓词备忘单,它确实支持谓词使用的所有运算符:

https://academy.realm.io/posts/nspredicate-cheatsheet/?_ga=2.32752254.1161432538.1537175891-1199086799.1527592477

关于objective-c - NSPredicate 过滤复杂对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52363623/

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