美文网首页
ios 数组排序 中文

ios 数组排序 中文

作者: hstar德 | 来源:发表于2020-05-07 15:27 被阅读0次

    1.数组排序 支持中文

    +(NSMutableArray *)sortDevModel:(NSArray *)arr{
    
        arr = [arr sortedArrayUsingComparator:^NSComparisonResult(DeviceModel *obj1, DeviceModel *obj2) {
    
            if (obj1.isOnline) {
    
                if (obj2.isOnline) {
    
                    return [obj1.name localizedCompare:obj2.name];
    
                }else{
    
                    return NO;
    
                }
    
            }else {
    
                if (obj2.isOnline) {
    
                    return YES;
    
                }else{
    
                    return [obj1.name localizedCompare:obj2.name];
    
                }
    
            }
    
        }];
    
        return [[NSMutableArray alloc]initWithArray:arr];
    
    }
    
    localizedCompare:可比较中文
    

    2.多条件排序 如果用中文的key 排序结果可能不正确

    NSSortDescriptor *descriptor = [NSSortDescriptorsortDescriptorWithKey:@"key1"ascending:YES];
    
    NSSortDescriptor *descriptor1 = [NSSortDescriptorsortDescriptorWithKey:@"key2"ascending:YES];
    
    arr = [arr sortedArrayUsingDescriptors:@[descriptor,descriptor1]];
    
    NSArray 使用sortedArrayUsingDescriptors,返回排序好的数组。
    
    NSMutableArray直接使用sortUsingDescriptors,对数组本身排序。
    
    如果数组里面不是对象  key直接传nil
    

    相关文章

      网友评论

          本文标题:ios 数组排序 中文

          本文链接:https://www.haomeiwen.com/subject/fpjaghtx.html