gpt4 book ai didi

objective-c - 对包含 2 种对象的 NSmutableArray 进行排序?

转载 作者:太空狗 更新时间:2023-10-30 03:52:13 26 4
gpt4 key购买 nike

我有一个包含两种类型对象的 NSMutableArray。

两个对象都包含一个具有不同名称的日期字段(不同格式的日期字符串)。

根据日期对它们进行排序的最好和最快的方法是什么?在这种情况下是否可以使用 NSSortDescriptor

最佳答案

如果您的目标是 Mac OS X v10.6 或 iOS4 及更高版本,您可以使用类似于此的比较器进行排序

NSDateFormatter *formatter1 = ...; //create and configure date formatter for Class1
NSDateFormatter *formatter2 = ...; //create and configure date formatter for Class2


[arrayOfObjects sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
NSDate *date1 = nil, *date2 = nil;
//Get first objects date
if([obj1 isKindOfClass:[Class1 class]])
{
date1 = [formatter1 dateFromString:[obj1 class1Date]];
}
else if([obj1 isKindOfClass:[Class2 class]])
{
date1 = [formatter2 dateFromString:[obj1 class2Date]];
}

//Get second objects date
if([obj2 isKindOfClass:[Class1 class]])
{
date2 = [formatter1 dateFromString:[obj2 class1Date]];
}
else if([obj2 isKindOfClass:[Class2 class]])
{
date2 = [formatter2 dateFromString:[obj2 class2Date]];
}

NSAssert(date1 != nil, @"Could not parse date from %@", obj1);
NSAssert(date2 != nil, @"Could not parse date from %@", obj2);

return [date1 compare:date2];
}];

除了检查类之外,您还可以检查它是否响应选择器。

关于objective-c - 对包含 2 种对象的 NSmutableArray 进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7100223/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com