int main(int argc, const char * argv[]) {
/*
NSArray *arr = @[@10, @20, @5, @7, @15];
NSLog(@"排序前: %@", arr);
// 注意: 想使用compare方法對數(shù)組中的元素進行排序, 那么數(shù)組中的元素必須是Foundation框架中的對象, 也就是說不能是自定義對象
NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"排序后: %@", newArr);
*/
Person *p1 = [Person new];
p1.age = 10;
Person *p2 = [Person new];
p2.age = 20;
Person *p3 = [Person new];
p3.age = 5;
Person *p4 = [Person new];
p4.age = 7;
NSArray *arr = @[p1, p2, p3, p4];
NSLog(@"排序前: %@", arr);
// 按照人的年齡進行排序
// 不能使用compare:方法對自定義對象進行排序
// NSArray *newArr = [arr sortedArrayUsingSelector:@selector(compare:)];
// 該方法默認(rèn)會按照升序排序
NSArray *newArr = [arr sortedArrayWithOptions:NSSortStable usingComparator:^NSComparisonResult(Person *obj1, Person *obj2) {
// 每次調(diào)用該block都會取出數(shù)組中的兩個元素給我們
// 二分
// NSLog(@"obj1 = %@, obj2 = %@", obj1, obj2);
return obj1.age > obj2.age;
// return obj1.age < obj2.age;
/*
if (obj1.age > obj2.age) {
// 5 4
return NSOrderedDescending;
}else if(obj1.age < obj2.age)
{
// 4 5
return NSOrderedAscending;
}else
{
return NSOrderedSame;
}
*/
}];
NSLog(@"排序后: %@", newArr);
return 0;
}