Objective c 如何使用NSComparator?

Objective c 如何使用NSComparator?,objective-c,cocoa-touch,ios4,objective-c-blocks,Objective C,Cocoa Touch,Ios4,Objective C Blocks,我想知道是否可以使用NSComparator解决以下问题 我有两个数组;两者都持有数据模型。我在数据模型中有一个名为rank的属性。现在我想比较这两个数组,并想知道其中是否有一个拥有更高级别的数据模型。 如果是,我希望获得NSComparisonResult=nsorderedascing 顺便说一句,我在这里使用另一种方法:是“数组中每个数据模型的总秩,如果总秩大于第二个数组的数据模型的总秩。”是的,它看起来像这样: NSArray *someArray = /* however you ge

我想知道是否可以使用
NSComparator
解决以下问题

我有两个数组;两者都持有数据模型。我在数据模型中有一个名为rank的属性。现在我想比较这两个数组,并想知道其中是否有一个拥有更高级别的数据模型。 如果是,我希望获得
NSComparisonResult=nsorderedascing


顺便说一句,我在这里使用另一种方法:是“数组中每个数据模型的总秩,如果总秩大于第二个数组的数据模型的总秩。”

是的,它看起来像这样:

NSArray *someArray = /* however you get an array */    
NSArray *sortedArray = [someArray sortedArrayUsingComparator:^(id obj1, id obj2) {
  NSNumber *rank1 = [obj1 valueForKeyPath:@"@sum.rank"];
  NSNumber *rank2 = [obj2 valueForKeyPath:@"@sum.rank"];
  return (NSComparisonResult)[rank1 compare:rank2];
}];

(更新以显示实际使用比较器)

您能否提供一个示例代码片段来更清楚地说明这一点?NSComparator是一个块,您可以使用比较器:(NSComparator)cmptr将其馈送给NSArray的-(NSArray*)sortedarray等方法