何时使用NSArray的各种排序方法?

时间:2011-09-28 21:47:00

标签: iphone ios nsmutablearray nsarray

doco解释了NSArray排序方法的用途,但是有人能够给出关于何时/为什么使用特定方法的要点?即你在代码中的什么情况下你会使用方法XXX而不是方法YYY。为:

  • sortedArrayUsingComparator
  • sortedArrayUsingDescriptors
  • sortedArrayUsingFunction:上下文
  • sortedArrayUsingSelector

1 个答案:

答案 0 :(得分:3)

有关更多一般信息,请参阅Collection Programming Topics: Sorting Arrays。如果您正在查看课程参考文档,请务必查看列出的“Companion指南”,以获得有关课程如何工作的更实用,实际的建议。

基本上,sortedArrayUsingSelector:sortedArrayUsingFunction:context:自10.0 / iOS 2.0以来就已存在。它们不如后来的其他方法灵活。

如果您有一组相对简单的对象,例如NSNumberNSString,则可以使用[numbers sortedArrayUsingSelector:@selector(compare:)]轻松对对象进行排序。

另一方面,如果您有一个更复杂的模型对象具有多个属性,例如agenamedateNSSortDescriptor运行良好。这些是在OS X 10.3 / iOS 2.0中添加的。允许您执行首先按age排序,然后按name排序,然后按date排序。