在Realm中查找包含多个对象的对象

时间:2016-11-20 11:03:52

标签: swift realm

使用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的所有货架是什么?”

更一般的问题是如何在其数组/列表属性中查询包含对象子集的对象。

1 个答案:

答案 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