OBjective-C:在可变数组NSMutableArray中添加相同对象后,进行自定义的排序方式输出
以下为自定义的排序方式的实现 1 #import "Person+Compare.h" 2 3 @implementation Person (Compare) 4 -(NSComparisonResult)CompareByName:(Person*)aPerson 5 { 6 return [self.name compare:aPerson.name]; 7 } 8 -(NSComparisonResult)CompareByAge:(Person*)aPerson 9 { 10 if(self.age > aPerson.age) 11 return NSOrderedDescending; 12 else if (self.age < aPerson.age) 13 return NSOrderedAscending; 14 else 15 return NSOrderedSame; 16 } 17 @end 主函数测试: #import <Foundation/Foundation.h> #import "Person+Compare.h" #import "Person.h" int main(int argc, const char * argv[]) { @autoreleasepool { NSMutableArray *personArray = [[NSMutableArray alloc]initWithCapacity:20]; [personArray addObject:[Person personWithName:@"Tom" andAge:20]]; [personArray addObject:[Person personWithName:@"Smith" andAge:21]]; [personArray addObject:[Person personWithName:@"Jhon" andAge:19]]; [personArray addObject:[Person personWithName:@"Bruth" andAge:24]]; //按姓名排序 NSMutableArray *sortedByName = [NSMutableArray arrayWithArray:[personArray sortedArrayUsingSelector:@selector(CompareByName:)]]; NSLog(@"%@",sortedByName); //按年龄排序 NSMutableArray *sortedByAge = [NSMutableArray arrayWithArray:[personArray sortedArrayUsingSelector:@selector(CompareByAge:)]]; NSLog(@"%@",sortedByAge); } return 0; } 测试结果为: 2015-08-18 18:03:26.997 可变数组的排序[2079:120917] ( "name=Bruth,age=24", "name=Jhon,age=19", "name=Smith,age=21", "name=Tom,age=20" ) 2015-08-18 18:03:26.998 可变数组的排序[2079:120917] ( "name=Jhon,age=19", "name=Tom,age=20", "name=Smith,age=21", "name=Bruth,age=24" ) Program ended with exit code: 0 程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式! 本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/4740195.html,如需转载请自行联系原作者