如何在swift中多次排序json数组

时间:2015-09-30 16:19:16

标签: mysql json swift sorting

我试图用几个值对数组进行排序,不只是一个而是三个我可以这样排序

mysocialArray.sort({$0["date"] > $1["date"]})

这样可以正常工作,但我可以找到任何地方,然后再对它进行排序,以便我按时间排序和另一种排序。所以应该排序三次。当我只是添加另一种时,它没有考虑日期。

然后,排序的json输出将作为字符串加载到数组中以显示在viewcontroller

我该如何解决这个问题?

感谢

1 个答案:

答案 0 :(得分:0)

鉴于您的要求“这种方式,尚未阅读的最新帖子位于顶部”,看起来您希望按多个标准排序。我在黑暗中打字,所以你可能需要调整它以适合你的情况:

mySocialArray.sort {
    // First sort by read status. Assuming read is of type Bool
    let (read1, read2) = ($0["read"] ? 1 : 0, $1["read"] ? 1 : 0)
    if read1 != read2 {
        return read1 > read2
    }

    // Then short by date. I assume date is of type NSDate
    let (date1, date2) = ($0["date"], $1["date"])
    if date1.timeIntervalSince1970 != date2.timeIntervalSince1970 {
        return date1 > date2
    }

    // And lastly sort by time
    return $0["time"] > $1["time"]
}