【问题标题】:when to use the various sort methods of NSArray?什么时候使用 NSArray 的各种排序方法?
【发布时间】:2011-09-28 21:46:59
【问题描述】:
doco 解释了 NSArray 排序方法是什么,但是有没有人能够就何时/为什么使用特定方法给出一个要点?即在什么情况下你会在你的代码中使用方法 XXX 而不是方法 YYY。对于:
- sortedArrayUsingComparator
- sortedArrayUsingDescriptors
- sortedArrayUsingFunction:context
- sortedArrayUsingSelector
【问题讨论】:
标签:
iphone
ios
nsmutablearray
nsarray
【解决方案1】:
有关更多一般信息,请参阅Collection Programming Topics: Sorting Arrays。如果您正在查看课程参考文档,请务必查看列出的“配套指南”,以获得有关课程工作方式的更实用、真实的建议。
基本上,sortedArrayUsingSelector: 和 sortedArrayUsingFunction:context: 自 10.0/iOS 2.0 以来就已存在。它们不像后来出现的其他方法那样灵活。
如果您有一组相对简单的对象,例如NSNumbers 或NSStrings,您可以使用[numbers sortedArrayUsingSelector:@selector(compare:)] 轻松对对象进行排序。
另一方面,如果您有一个更复杂的模型对象,它具有多个属性,例如age、name、date、NSSortDescriptors,则效果很好。这些是在 OS X 10.3/iOS 2.0 中添加的。允许您先按age 排序,然后按name 排序,然后按date 排序。