我想使用解析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.
是否有一定的搜索顺序在哪里搜索?
由于
答案 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()
。
例如,如果您的查询被调用query
,query.orderByAscending("parameter you want to sort")
将为您排序结果。
请注意,这些方法只接受字符串/字符串变量。
这允许您按Parse数据库中存在的参数进行排序。
例如,假设您要订购User
课程中的“用户名”字段(并且您已使用query
来检索User
课程。query.orderByAscending("username")
将按字母顺序排序。