2016-11-20 193 views
1

考慮下面的多個對象的對象,使用領域斯威夫特: 查找包含在領域

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的所有貨架?」

更一般的問題是如何查詢包含其數組/列表屬性中的對象子集的對象。

回答

3

首先,對於境界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