ios - 按日期对 NSMutableArray 中的不同实体进行排序

标签 ios sorting nsmutablearray block nssortdescriptor

我在 NSMutableArray 中推送 3 个不同的实体,需要比较它们的日期。

但是这 3 个不同的实体对日期有不同的名称。

我使用 3 个实体:Birthday、Events、OtherEvents 以及日期属性:birthday、day、date。

有没有人知道如何像这样对它进行排序。它有大约 40 个属性,所以它不是一个单一的比较。

提前致谢

最佳答案

试试这个:

[eventsArray sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {

    NSDate *date1 = nil;
    NSDate *date2 = nil;

    if ([obj1 isKindOfClass:[Birthday class]]) {
        date1 = [obj1 birthday];
    } else if ([obj1 isKindOfClass:[Events class]) {
        date1 = [obj1 day];
    } else if ([obj1 isKindOfClass:[OtherEvents class]) {
        date1 = [obj1 date];
    }

    if ([obj2 isKindOfClass:[Birthday class]]) {
        date2 = [obj2 birthday];
    } else if ([obj2 isKindOfClass:[Events class]) {
        date2 = [obj2 day];
    } else if ([obj isKindOfClass:[OtherEvents class]) {
        date2 = [obj2 date];
    }

    return [date1 compare:date2];
}];

关于ios - 按日期对 NSMutableArray 中的不同实体进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23912766/

相关文章:

ios - (iOS) 应用程序中所有父 View Controller 上的音频播放器作为 subview Controller

ios - 行间距不起作用

objective-c - 从另一个数组添加对象

cocoa - ComponentsJoinedByString 给了我 EXC_BAD_ACCESS

iphone - 如何存储所有这些预先创建的数据?

ios - 将 id 转换为长类型崩溃

sorting - grep 并使用模式文件进行排序

sorting - -g 选项打破保守的linux排序

python - 更改行顺序 Pandas 数据框

objective-c - iOS - 将数组保存到磁盘所需的时间