2016-04-24 20 views
0

私のコードは次のとおりです。ソートや研究

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

しかし、私は私の結果は、両方の条件を満たすようにしたいので、あるいは全くありませんと。

どうすればよいですか?

また、キーに応じてエンティティをソートするにはどうすればよいですか?

答えて

0

フィルタリングするために、Graphは複雑なクエリを記述するのではなく、プログラム的なアプローチをとっています。だからまず、あなたが探しているデータのコレクションを取得することです、これはORによって行われます。 ANDをソートするためにfilter

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が提供するメリットの1つです。

関連する問題