如何通过Cocoa Touch中的某个属性来排序对象数组?

时间:2010-09-25 10:21:53

标签: objective-c arrays cocoa-touch

假设我有一系列自定义对象。自定义类看起来像这样

Person
-------
name
number

现在假设我想重新排列这些对象的数组,以便按照数字对对象进行排序。怎么办呢?

1 个答案:

答案 0 :(得分:2)

1)您必须在Person课程中实施以下方法

- (NSNumber *)numberForSorting {
  return self.number;
}

- (NSComparisonResult)compare:(Person *)person {
    return [[self numberForSorting] compare:[person numberForSorting]];
}


2)当一个Person数组需要排序时,你只需要调用

a)如果是NSMutableArray

[peopleMutableArray sortUsingSelector:@selector(compare:)];

b)如果是NSArray

NSArray *sortedPeople = [peopleArray sortedArrayUsingSelector@selector(compare:)];