NSArray排序

来源:互联网 发布:浏览器ip代理软件 编辑:程序博客网 时间:2024/06/04 18:03
//1.使用sortedArrayUsingSelector        //也是最简单的排序方式        //数组是按照你存入元素的顺序存储的        NSArray * array = @[@"b",@"d",@"a",@"z"];        NSLog(@"排序前 array %@",array);        array = [array sortedArrayUsingSelector:@selector(compare:)];//        NSArray * array1 = [array sortedArrayUsingSelector:@selector(compare:)];        NSLog(@"排序后 array %@",array);        //2.使用block方式排序        NSArray * array2 = @[@"z",@"4",@"b",@"3",@"x"];        NSLog(@"array2 排序前 %@",array2);        array2 = [array2 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {            /*            NSComparisonResult retuslt = [obj1 compare:obj2];            return retuslt;             */            //obj1 compare obj2 就是正序排序//            return [obj1 compare:obj2];            //obj2 compare obj1 就是倒序排序            return [obj2 compare:obj1];        }];        NSLog(@"array2 排序后 %@",array2);        Person * p1 = [[Person alloc] initWithName:@"xiaozhe" andAge:20 andYear:@"1990"];        Person * p2 = [[Person alloc] initWithName:@"alex" andAge:18 andYear:@"2990"];        Person * p3 = [[Person alloc] initWithName:@"merry" andAge:25 andYear:@"1890"];        NSArray * array3 = @[p1,p2,p3];        NSLog(@"array3 排序前 %@",array3);        //3.使用 给数组排序        //如果你向给你自己定义的对象排序,必须根据某一个属性来排序,        //sortDescriptorWithKey 参数要的就是你对象中,要依据哪个属性来排序,你就把哪个属性的名字当成key传入        //ascending YES表示正序 NO表示倒叙        NSSortDescriptor * d1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];        NSSortDescriptor * d2 = [NSSortDescriptor sortDescriptorWithKey:@"year" ascending:NO];        //如果你要使用多个属性进行排序,默认在前面的NSSortDescriptor优先级比较高        NSArray * descripts = @[d2,d1];        array3 = [array3 sortedArrayUsingDescriptors:descripts];        NSLog(@"array 3 排序后  %@",array3);        //4.        NSArray * array4 = @[p1,p2,p3];        NSLog(@"array4 排序前 %@",array4);        array4 = [array4 sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {            Person * p1 = obj1;            Person * p2 = obj2;            //year            return [p1.year compare:p2.year];        }];        NSLog(@"array4 排序后 %@",array4);
0 0
原创粉丝点击