在Objective-C中,可以使用NSSortDescriptor类来对数组中的DataModel对象进行排序。首先,需要创建一个NSSortDescriptor对象,指定排序的属性和排序方式。然后,使用sortedArrayUsingDescriptors:方法对数组进行排序。

假设DataModel类的定义如下:

@interface DataModel : NSObject

@property (nonatomic, assign) NSInteger year;
@property (nonatomic, assign) NSInteger month;
@property (nonatomic, assign) NSInteger day;

@end

接下来是对数组进行排序的示例代码:

// 创建一个DataModel数组
NSMutableArray *dataModels = [NSMutableArray array];

// 向数组添加DataModel对象
DataModel *dataModel1 = [[DataModel alloc] init];
dataModel1.year = 2022;
dataModel1.month = 1;
dataModel1.day = 1;
[dataModels addObject:dataModel1];

DataModel *dataModel2 = [[DataModel alloc] init];
dataModel2.year = 2021;
dataModel2.month = 12;
dataModel2.day = 31;
[dataModels addObject:dataModel2];

DataModel *dataModel3 = [[DataModel alloc] init];
dataModel3.year = 2022;
dataModel3.month = 3;
dataModel3.day = 15;
[dataModels addObject:dataModel3];

// 创建一个NSSortDescriptor对象,指定排序的属性为"year"、"month"和"day",排序方式为降序
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"year" ascending:NO];
NSSortDescriptor *sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"month" ascending:NO];
NSSortDescriptor *sortDescriptor3 = [NSSortDescriptor sortDescriptorWithKey:@"day" ascending:NO];

// 对数组进行排序
NSArray *sortedArray = [dataModels sortedArrayUsingDescriptors:@[sortDescriptor, sortDescriptor2, sortDescriptor3]];

// 打印排序后的结果
for (DataModel *dataModel in sortedArray) {
    NSLog(@"%ld-%ld-%ld", dataModel.year, dataModel.month, dataModel.day);
}

运行以上代码,输出结果如下:

2022-3-15
2022-1-1
2021-12-31

可以看到,数组中的DataModel对象按照年、月、日的降序排列

ios object-c 对数组里面的DataModel进行排序 DataMode有年月日 NSInteger year; NSInteger month;NSInteger day;年月日越大的值排越前面

原文地址: https://www.cveoy.top/t/topic/iDHc 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录