1

目前在我的应用程序中,我有一个从 NSUserDefaults 加载的 NSArray。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 感到困惑。

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

谢谢!

4

1 回答 1

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;
        }

    }];
于 2012-05-19T20:00:14.480 回答