我一直在努力寻找一种简单的方法来排序包含NSDictionaries的NSMutableArray。每个NSDictionary都有一个名为“Date”的键,它包含一个日期的NSString(例如:10/15/2014)。通过字符串日期在键中NS NSArray NSArray的排序?
我在找的是按升序对这些字符串进行排序。
我已经没有运气尝试这样做:
NSComparisonResult dateSort(NSString *s1, NSString *s2, void *context) {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MM/dd/yy"];
NSDate *d1 = [formatter dateFromString:s1];
NSDate *d2 = [formatter dateFromString:s2];
return [d1 compare:d2]; // ascending order
return [d2 compare:d1]; // descending order
}
我还没有运气尝试这样做:
NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"interest" ascending:YES];
stories=[stories sortedArrayUsingDescriptors:[NSArray arrayWithObjects:descriptor,nil]];
recent = [stories copy];
在发生碰撞每种方法的结果,我认为这是因为它是一个NSString,而不是一个NSDate,但我只是在如何做到这一点的损失。
任何人都可以告诉我正确的方法来完成这个吗?
这是我如何调用一个代码块:
theDictionaries = [[theDictionaries sortedArrayUsingFunction:dateSort context:nil] mutableCopy];
它发生什么事故,什么是错误信息? – rdelmar
第一块代码在NSDate * d1 = [formatter dateFromString:s1]中崩溃;与崩溃是:NSDictionaryI长度]:无法识别的选择器发送到实例 – user3251233
听起来就像你正在传递字典到字符串参数(s1)。显示整个方法的代码。 s1和s2从哪里来? – rdelmar