我要做的是根据这些字符串按升序对数组进行排序.
我试过这个没有运气:
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];解决方法 你需要在你的词典中找到字符串.看起来你正试图比较字典本身.如果你有一个名为data的数组,你会做这样的事情,
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];[formatter setDateFormat:@"MM/dd/yyyy"];self.data = [self.data sortedArrayUsingComparator:^NSComparisonResult(NSDictionary *obj1,NSDictionary *obj2) { NSDate *d1 = [formatter dateFromString:obj1[@"date"]]; NSDate *d2 = [formatter dateFromString:obj2[@"date"]]; return [d1 compare:d2]; // ascending order return [d2 compare:d1]; // descending order}];NSLog(@"%@",self.data);总结
以上是内存溢出为你收集整理的ios – 按密钥中的字符串日期对NSDictionaries的NSArray进行排序?全部内容,希望文章能够帮你解决ios – 按密钥中的字符串日期对NSDictionaries的NSArray进行排序?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)