我在 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/