使用Realm Swift考虑以下内容:
class Shelf : Object {
dynamic var products: List<Product>
}
和
class Product : Object {
dynamic var string: String = ""
let Shelves = LinkingObjects(fromType: Shelf.self, property: "products")
}
现在问题是,是否可以执行如下查询:
“包含产品A和产品B的所有货架是什么?”
更一般的问题是如何在其数组/列表属性中查询包含对象子集的对象。
答案 0 :(得分:4)
首先,Realm List
属性的正确语法是:
class Shelf: Object {
let products = List<Product>()
}
除此之外,应该可以使用.filter
方法中的点表示法查询多个链接对象的单个父对象:
let shelves = realm.objects(Shelf.self).filter("ANY products.string = 'A' AND ANY products.string = 'B'")
有关您可以执行的查询类型的详细信息,请查看NSPredicate
page on Realm's website。