0

我的代码是:

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

但我希望我的结果同时满足这两个条件是一个如此或否和。

我该怎么做?

另外,如何根据键对实体进行排序?

4

1 回答 1

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
    }

供参考

此外,您不需要通过 Graph 共享实例DataManager.sharedInstance。Graph 的任何实例都将引用相同的数据。这是 Graph 提供的好处之一。

于 2016-04-25T17:23:15.733 回答