2016-04-24 63 views
0

我的代碼是:排序和研究與圖形coredata

let risultato = DataManager.sharedInstance.graph.searchForEntity(
     properties: [(key: "tempo", value: "00:00:40.00", 
      ("valore","decimi")]) 

但我想我的結果,以滿足這兩個條件是如此或不和。

我該怎麼做?

另外我怎麼能根據一個關鍵字來排序實體?

回答

0

爲了過濾,Graph採用編程方式,而不是編寫複雜的查詢。所以第一件事就是通過OR獲得您正在查找的數據的收集。該ANDfilter

let result = graph.searchForEntity(properties: [("valore", "decimi")]).filter { (entity: Entity) in 
     return entity["tempo"] as? String == "00:00:40.00" 
    } 

處理的分類,你可以做到這一點,因爲結果數據結構是一個數組

let sorted: [Entity] = result.sort ({ $0["key"] as? String > $1["key"] as? String }) 

    let sorted: [Entity] = result.sort { (a: Entity, b: Entity) -> Bool in 
     return a["key"] as? String > b["key"] as? String 
    } 

FYI

而且,你不需要通過DataManager.sharedInstance共享Graph實例。 Graph的任何實例都會引用相同的數據。這是Graph提供的好處之一。