數(shù)組排序方法介紹 (注意:排序后返回值是不可變數(shù)組類型)
//排序方法1 (塊排序)
NSArray * arr4 = @[@"aaa",@"ccc",@"ddd",@"bbb"];
NSArray * newarr4 = [arr4 sortedArrayUsingComparator:^NSComparisonResult(NSString * obj1, NSString * obj2)
{
NSString * str1 = (NSString *)obj1;
NSString * str2 = (NSString *)obj2;
if ([str1 compare:str2] == NSOrderedDescending)
{
return NSOrderedDescending;
}
else if ([str1 compare:str2])
{
return NSOrderedAscending;
}else
return NSOrderedSame;
return [obj1 compare:obj2];
}];
//打印排序后的數(shù)組
NSLog(@"%@",newarr4);
//排序方法2.
//創(chuàng)建對象,并給相應(yīng)對象的屬性賦值
Student * stu = [Student new];
stu.name = @"唐僧";
stu.age = 23;
Student * stu1 = [Student new];
stu1.name = @"孫悟空";
stu1.age = 1500;
Student * stu2 = [Student new];
stu2.name = @"豬八戒";
stu2.age = 1800;
Student * stu3 = [Student new];
stu3.name = @"沙和尚";
stu3.age = 32;
//把對象添加到數(shù)組中
NSArray * team = @[stu,stu1,stu2,stu3];
//按年齡降序排列
NSSortDescriptor * sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];
//按名字升序排列
NSSortDescriptor * sort1 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES];
team = [team sortedArrayUsingDescriptors:@[sort1,sort]];//sort1 優(yōu)先,sort 其次。
//打印排序后數(shù)組
for (int i = 0; i < team.count; i++)
{
NSLog(@"%@",team[i]);
}
//排序方法3 (使用自定義的排序方法排序)
NSArray * team = @[stu,stu1,stu2,stu3];
//使用自定義的比較方法進行排序
team = [team sortedArrayUsingSelector:@selector(myCompare:)];
for (int i = 0; i<team.count; i++)
{
NSLog(@"%@",team[i]);
}
//比較方法實現(xiàn)(注意返回值類型,此方法也可實現(xiàn)在其他類中,只需頭文件引入即可)
-(NSComparisonResult)myCompare:(Student *)other
{
return -1 * (self.age - other.age);
}