xcode - Swift:按多个标准(权重)对数组进行排序

标签 xcode swift sorting swift2

<分区>

我已经阅读过类似的问题/答案,但没有一个能解决我的问题。

我有一个这样的对象

class Chat {
    unreadMessages: Int = 0
    messages: Int = 0
}

然后我有一个 Chat 对象数组,我需要按多个条件对其进行排序,首先是根据聊天的未读消息数进行排序,然后根据聊天的总消息数进行排序。

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
})

谁能解释一下这是怎么回事?

最佳答案

您还没有获得 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
})

关于xcode - Swift:按多个标准(权重)对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33889212/

相关文章:

xcode - 这是什么意思 : Undefined symbols for architecture x86_64 "_main"

执行排序的C库函数

iphone - Xcode 默认一页 ios 项目 - 为什么代理不负责加载 Controller

ios - 如何将多个对象保存到关系实体中。 Xcode

ios - 如何在 navigationBar (UITableView) swift 下添加 SearchController.searchBar

c - 我的奇偶排序例程有什么问题?

python - 合并排序单词列表

iphone - 添加由主音量控制的声音

ios - iOS 6 模拟器上的智能横幅无法正常工作

ios - Swift 中的嵌套字典