在NSArray中的NSDictionary里面排序NSDates?

时间:2012-05-19 19:49:44

标签: ios sorting nsdate nsdictionary

目前在我的应用程序中,我有一个NSArray,我从NSUserDefaults加载。 NSArray中的每个对象都是一个NSDictionary,它有大约5个不同的键。我根据其中的NSDates重新排序 NSDictionarys 。我不想单独对NSDates进行排序。

我尝试使用此代码执行此操作:

NSComparator sortByDate = ^(id dict1, id dict2) {
        NSDate* n1 = [dict1 objectForKey:@"Date"];
        NSDate* n2 = [dict2 objectForKey:@"Date"];
        return (NSComparisonResult)[n1 compare:n2];
    };
    [self.cellArray sortUsingComparator:sortByDate];

即使代码被执行也没有任何反应。我很困惑,但是如何基于它内部的东西重新排序NSDictionarys。

任何人都可以对此提出任何见解吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可以尝试内联排序,但我怀疑这会产生什么重大影响。但我可以说我从来没有抽出我的积木。我肯定会尝试NSLogging以确保你获得有效的NSDates。

    [cells sortUsingComparator:^NSComparisonResult(id obj1, id obj2) {
        NSDate *n1 = [obj1 objectForKey:@"Date"];
        NSDate *n2 = [obj2 objectForKey:@"Date"];

        if (n1 > n2) {
            return NSOrderedAscending;
        } else (n1 < n2) {
            return NSOrderedDescending;
        } else {
            return NSOrderedSame;
        }

    }];