如何使用sortUsingFunction(或sortUsingSelector)对包含数组的对象的NSMutableArray进行排序

时间:2012-01-27 15:54:46

标签: iphone ios sorting nsmutablearray nssortdescriptor

我有NSMutableArray个模型对象。每个模型对象都包含NSArray NSNumbers。我想根据各自数字数组中的最低NSNumber值对模型对象进行排序。

使用sortUsingFunction(或sortUsingSelector)实现此目的的最佳方式是什么?我仍然支持iOS 3.2所以我不能使用块。

目前,我正在使用最低NSNumber值标记每个模型对象,然后在标记键上使用NSSortDescriptor ...但我确信有更好的方法...

1 个答案:

答案 0 :(得分:2)

我不确定这是否是最干净或最有效的方法,但您可以为模型类- (NSComparisonResult)compare:(MyModel *)otherModel编写一个方法,您可以:

  1. 使用NSArray
  2. NSNumbersself个对象otherModel sortedArrayUsingSelector:@selector(compare:)排序
  3. 获取您在步骤1中创建的两个排序数组的索引0处的NSNumber对象(这将是每个数组中的最低值)
  4. 返回[lowestSelfNumber compare:lowestOtherNumber]
  5. 的结果

    然后,您可以使用sortUsingSelector:@selector(compare:)

    对可变数组进行排序