我已经阅读了类似的问题/答案,但没有一个能解决我的问题。
我有一个像这样的对象
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
Desidered output:
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
})
有人可以解释一下这有什么问题吗?
答案 0 :(得分:3)
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
})