使用带有对象的NSDictionaries对NSArray进行排序

时间:2014-07-24 23:03:33

标签: objective-c nsarray nsdictionary nssortdescriptor

我有一个字典数组,其中包含如下图所示的对象:

enter image description here

我遇到的问题是我需要按日期排序数组,例如在第一个对象中我的dueDate大于第二个对象的dueDate,然后我必须交换它们,所以换句话说我需要根据dueDate按升序排序数组中的字典,任何人都有想法吗?我已尝试使用NSpredicate,使用sortDescriptors但它不起作用,这里是我的sortDescriptors代码:

NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"dueDate" ascending:YES];
NSSortDescriptor *descriptor2 = [[NSSortDescriptor alloc] initWithKey:@"overDueDate" ascending:YES];
NSArray *descriptors = @[descriptor, descriptor2];
tasksResultArray = [tasksResultArray sortedArrayUsingDescriptors:descriptors];

提前致谢。

1 个答案:

答案 0 :(得分:0)

可以更轻松地完成:

arrayOfDictionaries = [arrayOfDictionaries sortedArrayUsingComparator:^NSComparisonResult(id obj1, id obj2) {

    // The logic for comparing dates, and returning the corresponding result

    NSDate *date1 = (NSDate *) [(NSDictionary *)obj1 objectForKey:@"dueDate"];
    NSDate *date2 = (NSDate *) [(NSDictionary *)obj2 objectForKey:@"dueDate"];

    return [date1 compare:date2];
}];