struct Sortable { let isPriority: Bool let ordering: Int}
将Sortable数组排序一个属性很简单:
sort {var sorted = array.sort({ (s1,s2) -> Bool in if s1.isPriority && !s2.isPriority { return true //this will return true: s1 is priority,s2 is not } if !s1.isPriority && s2.isPriority { return false //this will return false: s2 is priority,s1 is not } if s1.isPriority == s2.isPriority { return s1.ordering < s2.ordering //if both save the same priority,then return depending on the ordering value } return false}).ordering < .ordering }
但是我想通过isPriority排序,然后通过排序 – 我不能让我的头围绕一个简单的语句来做到这一点.
是的,有一个非常简单的方法使用Array.sort()码:
true - 10true - 10true - 12true - 12true - 19true - 29false - 16false - 17false - 17false - 17false - 18
排序数组:
let sorted = array.sort { t1,t2 in if t1.isPriority == t2.isPriority { return t1.ordering < t2.ordering } return t1.isPriority && !t2.isPriority }
另一个更短的解决方案:
总结以上是内存溢出为你收集整理的swift – 通过两个属性排序对象数组全部内容,希望文章能够帮你解决swift – 通过两个属性排序对象数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)