我已经读过类似的问题/答案,但没有一个能解决我的问题。
我有个像这样的东西
class Chat {
unreadMessages: Int = 0
messages: Int = 0
}然后,我有一个聊天对象数组,我需要按多个条件排序,首先通过聊天与切碎器未读消息,然后与聊天的总消息。
Es.
Obj TotMes Unread
Chat A 10 3
Chat B 1 0
Chat C 4 0
Chat D 9 9 减少的产出:
Chat D 9 9
Chat A 10 3
Chat C 4 0
Chat B 1 0 我试着用这种方法,但不要看上去是工作:
let sorted = chats.sort({ (c1, c2) -> Bool in
if c1.unreadMessages > c2.unreadMessages {
return true
}
if c1.messages > c2.messages {
return true
}
return false
})有人能解释一下这是怎么回事吗?
发布于 2015-11-24 09:02:06
对于应该涵盖所有需求的c1.unreadMessages < c2.unreadMessages,您还没有条件:
let sorted = chats.sort({ (c1, c2) -> Bool in
if c1.unreadMessages > c2.unreadMessages {
return true
} else if c1.unreadMessages < c2.unreadMessages {
return false
} else if c1.messages > c2.messages {
return true
}
return false
})https://stackoverflow.com/questions/33889212
复制相似问题