要对 iOS 数组中的模型进行排序,可以使用sortedArrayUsingComparator:方法,通过比较模型中的年、月、日和时间来进行排序。

假设数组名为modelArray,模型类名为Model,可以按照以下步骤进行排序:

  1. 导入模型类的头文件。
#import "Model.h"
  1. 使用sortedArrayUsingComparator:方法对数组进行排序,传入一个比较器(Comparator)。
NSArray *sortedArray = [modelArray sortedArrayUsingComparator:^NSComparisonResult(Model *obj1, Model *obj2) {
    // 根据需要比较年、月、日和时间
    if (obj1.year < obj2.year) {
        return NSOrderedAscending;
    } else if (obj1.year > obj2.year) {
        return NSOrderedDescending;
    } else {
        if (obj1.month < obj2.month) {
            return NSOrderedAscending;
        } else if (obj1.month > obj2.month) {
            return NSOrderedDescending;
        } else {
            if (obj1.day < obj2.day) {
                return NSOrderedAscending;
            } else if (obj1.day > obj2.day) {
                return NSOrderedDescending;
            } else {
                // 比较时间
                NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
                dateFormatter.dateFormat = "HH:mm:ss";
                NSDate *date1 = [dateFormatter dateFromString:obj1.timer];
                NSDate *date2 = [dateFormatter dateFromString:obj2.timer];
                return [date1 compare:date2];
            }
        }
    }
}];
  1. 排序后的结果存储在sortedArray中,可以在控制台打印排序后的结果进行验证。
for (Model *model in sortedArray) {
    NSLog(@"年:%ld 月:%ld 日:%ld 时间:%@", model.year, model.month, model.day, model.timer);
}

请注意,以上示例代码假设模型类中的属性为NSInteger类型,如果是NSNumber类型的属性,请使用obj1.year.integerValueobj2.year.integerValue进行比较。此外,时间的比较需要将字符串转换为NSDate对象,再使用compare:方法进行比较。

iOS 数组排序:对包含模型的数组进行排序

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

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