iOS自定义model排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS自定义model排序相关的知识,希望对你有一定的参考价值。

在开发过程中,可能需要按照model的某种属性排序。

1、自定义model

@interface Person : NSObject

@property (nonatomic,copy) NSString *name;

@property (nonatomic,assign) int age;

@end

2、创建model对象

       //创建model
        Person *liming = [[Person alloc] init];
        liming.name = @"liming";
        liming.age = 18;
        
        
        Person *zhangjie = [[Person alloc] init];
        zhangjie.name = @"zhangjie";
        zhangjie.age = 20;
        
        Person *liuxin = [[Person alloc] init];
        liuxin.name = @"liuxin";
        liuxin.age = 17;
        
        Person *wanghua = [[Person alloc] init];
        wanghua.name = @"wanghua";
        wanghua.age = 16;
    

3、创建存储数组

        //创建存储数组
        NSMutableArray *personArray = [NSMutableArray array];
        [personArray addObject:liming];
        [personArray addObject:zhangjie];
        [personArray addObject:liuxin];
        [personArray addObject:wanghua];        

4、按model年龄属性 排序

        //model 按年龄属性 排序
        NSArray *ageSortResultArray = [personArray sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {
            
            Person *per1 = obj1;
            
            Person *per2 = obj2;
            
            if (per1.age > per2.age) {
                return NSOrderedDescending;//降序
            }else if (per1.age < per2.age)
            {
                return NSOrderedAscending;//升序
            }else
            {
                return NSOrderedSame;//相等
            }
            
        }];    

5、打印结果

         //打印结果
        for (Person *per in ageSortResultArray) {
            NSLog(@"per.age = %d",per.age);
        }

6、截图

技术分享

以上是关于iOS自定义model排序的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段——git命令操作一个完整流程

Qt 自定义model实现文件系统的文件名排序

Qt 自定义model实现文件系统的文件名排序(重定义sort函数即可。忽然开窍了:其实捕捉点击Header事件,内部重排序,全部刷新显示即可)

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段(vue主模板)