我有一个包含自定义Object(ItemThread)的NSArray,我必须使用这些对象的属性(一个Date但是NSString)来命令这个数组。要订购的商品是一个名为" threadList"的数组。包含我的自定义数据(ItemThread)。所以我尝试使用:
NSSortDescriptor *sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"detail" ascending:NO];
NSArray *sortDescriptors = [NSArray arrayWithObject:sortDescriptor];
NSArray *sortedArray = [threadList sortedArrayUsingDescriptors:sortDescriptors];
但它不起作用,因为属性detail
是一个日期但不是NSDate,是一个NSString。你有解决方案吗?
或者我尝试过使用
NSMutableArray *threadDateArray = [[NSMutableArray alloc] init];
for (int i = 0; i<threadList.count; i++) {
ItemThread *_thr = [threadList objectAtIndex:i];
[threadDateArray addObject:_thr.detail];
}
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"dd/MM/yyyy HH:mm"];
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]];
NSMutableArray *dateArray = [NSMutableArray array];
for (NSString *dateString in threadDateArray) {
NSDate *date = [dateFormatter dateFromString:dateString];
[dateArray addObject:date];
}
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO];
NSArray *descriptors=[NSArray arrayWithObject: descriptor];
NSArray *reverseOrder = [dateArray sortedArrayUsingDescriptors:descriptors];
通过这种方式,我有一个正确排序的NSDate数组。但现在,我如何使用此顺序来命令我的自定义对象的threadList数组?