来自数组的PFQuery按顺序SWIFT

时间:2015-04-25 09:05:36

标签: arrays swift parse-platform pfquery

我想使用解析PFQuery从一个对象数组中进行查询,但我希望结果按照我放入的顺序排列,例如:

var age = [26, 28, 30, 20]

var ageQuery = PFUser.query()
ageQuery.whereKey("age", containedIn: age)

  let finalResult = ageQuery.findObjects()

  println(finalResult) // To equal my search but in the order I have put them in, so the first result should be 26, then 28 etc.

是否有一定的搜索顺序在哪里搜索?

由于

2 个答案:

答案 0 :(得分:1)

我不相信。文档肯定不会对结果的顺序做出任何承诺。

您最好的选择是在收到结果后对结果进行排序。考虑使用sortedArrayUsingComparator,并且对于您要比较的每个对象,在源数组中查找其索引,并使用索引来确定结果NSComparisonResult

在swift中,似乎你可以稍微捷径一点,所以就像:

var sortedResult = sorted(finalResult) { (obj1, obj2) in

    let p1 = obj1 as Person
    let p2 = obj2 as Person

    let index1 = find(age, p1.age)!
    let index2 = find(age, p2.age)!

    return index1 < index2
}

答案 1 :(得分:0)

您可以使用ascending()descending()

例如,如果您的查询被调用queryquery.orderByAscending("parameter you want to sort")将为您排序结果。

请注意,这些方法只接受字符串/字符串变量。

这允许您按Parse数据库中存在的参数进行排序。

例如,假设您要订购User课程中的“用户名”字段(并且您已使用query来检索User课程。query.orderByAscending("username")将按字母顺序排序。