【发布时间】:2016-02-02 11:52:26
【问题描述】:
我有一个 NSMutableArray 的字典。
dic1 = ["user":"Smith","points":12,"lastPoints":4,online:3MonthsAgo(NSDate)]
dic2 = ["user":"Mike","points":22,"lastPoints":3,online:2MonthsAgo(NSDate)]
dic3 = ["user":"Mark","points":22,"lastRank":5,online:now(NSDate)]
dic4 = ["user":"Jay","points":16,"lastPoints":2,online:2minutes(NSDate)]
dic5 = ["user":"Alex","points":13,"lastPoints":5,online:1hr(NSDate)]
dic6 = ["user":"Peter","points":22,"lastPoints":3,online:2days(NSDate)]
我想通过 3 种方式重新整理, 最先获得最高分的用户将首先显示 所以
Mike:22
Mark:22
Peter:22
Jay:16
Alex:13
Smith:12
现在我确实使用了
let sort = NSSortDescriptor(key: "points", ascending: false)
接下来我要根据 lastPoints 示例再次对这些用户进行排序
Mark:22:5
Mike:22:3
Peter:22:3
Jay:16:2
Alex:13:5
Smith:12:4
然后根据最后在线日期对 Mike 和 Peter 在数组中的位置进行排序。 现在当我尝试
let sortAgain = NSSortDescriptor(key: "lastPoints", ascending: false) and then
let sortAgain2 = NSSortDescriptor(key: "online", ascending: false)
它会删除我之前所做的那种 points,并根据 lastPoints 再次对所有内容进行排序。 我希望它根据点对它们进行排序,然后查看点是否相等,根据 lastPoints 对这些点数据进行排序。如果 lastPoints 相等,则根据“在线”日期对这些相等的数据进行排序。
【问题讨论】:
-
你告诉我们你想要什么。但是您忘记告诉我们您尝试了什么以及遇到了什么问题。
-
我坚持根据 lastPoints 和 Online 日期对它们进行排序,因为当我尝试时,它会对它们进行排序,但 Mark:22 不在顶部,
标签: swift nsmutablearray nsdictionary nssortdescriptor