zoukankan      html  css  js  c++  java
  • 排序总结

    1.一般数组排序

      //对数组进行排序
        NSArray * array = 一般数组
        NSArray *result = [array sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            
            
            if (条件) {
                
                return [obj2 compare:obj1]; //降序
                
            }
            else{
                
                return [obj1 compare:obj2]; //升序
            }
            
        }];

    2.对象数组按照属性排序

    (1)

    如果是对象需要按照xxx属性来排序,就生成下面的descriptor
    //    创建排序条件
     NSSortDescriptor *descriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"xxx" ascending:YES];
    如果需要多个排序,比如先按xxx排序,再按yyy排序。那就创建两个descriptor
        NSSortDescriptor *descriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"yyy" ascending:YES];
    
    //排序
     objArray =  [objArray sortedArrayUsingDescriptors:@[descriptor1,descriptor2]];
    

    (2)

    vc.m中
        
        //属性为字符串时
        NSArray *newobjArr = [objArr sortedArrayUsingSelector:@selector(MyCompare:)];
    
        // 属性为数字时
       //  NSArray *newobjArr = [objArr sortedArrayUsingSelector:@selector(MyCompare2:)];
    
    
    
    
    CustomOneModel.m中实现比较方法
     #import "CustomOneModel.h"
    
    @implementation CustomOneModel
    
    
    //属性为字符串时
    -(NSComparisonResult)MyCompare:(CustomOneModel *)obj
    {
        return [self.name compare:obj.name];
    }
    
    
    // 属性为数字时 
    - (NSComparisonResult)MyCompare2:(CustomOneModel *)obj {
        
        if ( self.height  > obj.height ) {
            return NSOrderedDescending;
        } else if (self.height < obj.height ) {
            return NSOrderedAscending;
        } else {
            return NSOrderedSame;
        }
    }
    //CustomOneModel.h中需要声明MyCompare ,否则会出现黄色警告
    
    @end
    
  • 相关阅读:
    马士兵Java学习之路
    @Component, @Repository, @Service的区别
    编译器警告:CGContextSaveGState: invalid context 0x0
    Other Linker Flags到底是什么
    Xcode常用快捷键(持续更新-20160811)
    iOS应用文件夹
    iOS compare 字符串比较
    去掉UITableView多余的空白行分割线
    iOS 查询数组中的对象
    UISearchController使用
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/7274999.html
Copyright © 2011-2022 走看看