我的代码是:
let risultato = DataManager.sharedInstance.graph.searchForEntity(
properties: [(key: "tempo", value: "00:00:40.00",
("valore","decimi")])
但我希望我的结果同时满足这两个条件是一个如此或否和。
我该怎么做?
另外,如何根据键对实体进行排序?
我的代码是:
let risultato = DataManager.sharedInstance.graph.searchForEntity(
properties: [(key: "tempo", value: "00:00:40.00",
("valore","decimi")])
但我希望我的结果同时满足这两个条件是一个如此或否和。
我该怎么做?
另外,如何根据键对实体进行排序?
为了过滤,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
}
供参考
此外,您不需要通过 Graph 共享实例DataManager.sharedInstance
。Graph 的任何实例都将引用相同的数据。这是 Graph 提供的好处之一。