所以,基本上,问题是,我有一个对象,我们称之为“产品”
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])
上面的示例将返回 categories
数组包含 id
1 的 Product
的所有 Products
。
当然,这是假设您只查找单个 id
的类别。如果您需要检查多个 id
,您可以使用 OR
修改上面的内容。
注意:我使用 NSArray
而不是 Realm 测试了上述谓词。但是,如果您检查 Realm 谓词备忘单,它确实支持谓词正在使用的所有运算符:
关于objective-c - NSPredicate 对复杂对象数组的过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52363623/