oc 菜鸟之 NSArray 排序的一些方法

88 阅读1分钟
NSComparisonResult intSort(id obj1,id obj2,void *context){
    
    int a = [obj1 intValue];
    int b = [obj2 intValue];
    if(a>b){
        return NSOrderedAscending;
    }else if(a<b){
        return NSOrderedDescending;
    }
    return NSOrderedSame;
    
}

int main(int argc, const char * argv[]) {
    @autoreleasepool {
      
        NSArray* array = @[
          @"swift1",@"java111",@"htm11111l",@"javaScript"
        ];
        
        //根据字符串长度排序
       NSArray* newArr =  [array sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            if([obj1 length] > [obj2 length]){
                return NSOrderedDescending;
            }else if([obj1 length] < [obj2 length]){
                return NSOrderedAscending;
            }
           return NSOrderedSame;
        }];
        NSLog(@"输出数组内容%@",newArr);
        //使用指定的方法比较
        NSArray* intAttr = @[
         @1,@3,@5,@7,@11,@1212,@100
        ];
        NSArray* nIntAttr = [intAttr sortedArrayUsingFunction:intSort context:nil];
        NSLog(@"输出数组内容%@",nIntAttr);
        //使用元素的的方法进行比较
        NSArray* attr3 = [array sortedArrayUsingSelector:@selector(compare:)];
        NSLog(@"输出数组内容%@",attr3);
    }
    return 0;
}

加油.png