• 排序总结


    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
    
  • 相关阅读:
    tomcat的一些知识
    WebHttpBinding的流传输模式让我头大了
    实体类编程的最佳伴侣——高效的实体类复制
    MySQL导入导出CSV
    WPF下的事件延迟触发
    WCF使用Json传输的一个BUG
    WCF大文件断点下载示例
    比较DataTable和实体类
    WPF下的右键菜单隐藏
    MySql Workbench中的BUG
  • 原文地址:https://www.cnblogs.com/Ganggang888/p/7274999.html
Copyright © 2020-2023  润新知