在NSArray内的NSDictionary中排列NSDates?

目前在我的应用程序,我有一个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基于内部的东西。

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

谢谢!

你可以尝试内联sorting,但我怀疑这会有什么重大的影响。 但我可以说我从来不抽象出我的块。 我肯定会尝试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; } }];