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