【发布时间】:2012-05-19 19:49:44
【问题描述】:
目前在我的应用程序中,我有一个从 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 感到困惑。
任何人都可以对此提供任何见解吗?
谢谢!
【问题讨论】:
-
能否给我们一个排序前后的 NSLog 输出?
-
@RyanPoolos 我这样做后正在刷新 UITableView,所以无论如何我肯定会看到所做的任何更改。我的代码是否有问题无法正常工作?
-
也可以尝试 NSLoging 你的 n1 和 n2 并确保它们是正确提取的有效日期对象。
-
您的代码对我来说看起来不错。以为你不需要(NSComparisonResult)
-
嗯,这很奇怪,尽管它似乎是倒退的,但它以某种方式被修复了。它把旧日期放在第一位,新日期放在最后,有什么办法可以解决这个问题吗?
标签: ios sorting nsdate nsdictionary