【问题标题】:PFQuery from an array in order SWIFT按 SWIFT 顺序从数组中查询 PFQuery
【发布时间】:2015-04-25 09:05:36
【问题描述】:

我想使用 parse 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.

是否有一定的搜索顺序?

谢谢

【问题讨论】:

    标签: arrays swift parse-platform pfquery


    【解决方案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
    }
    

    【讨论】:

    • 嗯,好的,谢谢。您能否进一步扩展这可能会如何完成?
    【解决方案2】:

    您可以使用ascending()descending()

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

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

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

    例如,假设您想从User 类中订购“用户名”字段(并且您已经在使用query 来检索User 类。query.orderByAscending("username") 将为您按字母顺序排序。

    【讨论】:

    • 但这对我上面的问题有什么帮助?我只能通过 Parses 数据库执行 orderByAscending,而不是我的 age 数组。我不希望它按升序或降序排列我希望它按非常特定的顺序放入数组中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2021-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多