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
    
  • 相关阅读:
    failed to push some refs to 'git@github.com:cq1415583094/MyBatis.git'解决办法
    MyBatis 安装和配置
    MyBatis入门
    LinkedList 源码分析
    ArrayList 源码分析
    什么是注解?
    什么是泛型?
    什么是反射?
    php针对各数据库系统对应的扩展
    DedeCMS文章标题长度最全修改方法
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/7274999.html
Copyright © 2011-2022 走看看