美文网首页
NSArray排序

NSArray排序

作者: yymyb | 来源:发表于2016-03-03 23:25 被阅读112次

方法一:在数组的对象里增加比较方法,例如Person类型的数组,想按生日来排序,那么首先在Person类里增加下面的方法,注意返回值的类型。

- (NSComparisonResult)compare:(Person *)otherObject

{

return [self.birthDate compare:otherObject.birthDate];

}

当需要对这个数组进行排序时,写下面的代码:

NSArray *sortedArray;

sortedArray = [drinkDetails sortedArrayUsingSelector:@selector(compare:)];

方法二:NSSortDescriptor (较好)

首先定义一个比较器,规定按birthDate字段来排序

NSSortDescriptor *sortDescriptor;

sortDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"birthDate" ascending:YES] autorelease];

NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];

NSArray *sortedArray;

sortedArray = [drinkDetails sortedArrayUsingDescriptors:sortDescriptors];

方法三:Blocks (最好)

10.6以后,可以使用代码段的方法。

NSArray *sortedArray;

sortedArray = [drinkDetails sortedArrayUsingComparator:^NSComparisonResult(id a, id b)

{ NSDate *first = [(Person*)a birthDate];

NSDate *second = [(Person*)b birthDate];

return [first compare:second];

}];

相关文章

网友评论

      本文标题:NSArray排序

      本文链接:https://www.haomeiwen.com/subject/uulokttx.html