字符串排序问题NSFetchedResultsController

时间:2011-08-31 14:48:27

标签: iphone objective-c ios sorting nsfetchedresultscontroller

我已经设置了一个字符串(实际上是一个字符串)作为sectionNameKeyPath。它的排序很好,但是例如2011年9月16日,比2011年9月2日更早的部分。解决这个问题的最佳方法是什么

enter image description here

更新我的解决方法是代替字符串,从中创建一个int(例如2011-09-09的20110909),然后在titleForHeader方法中再次将其转换为字符串

3 个答案:

答案 0 :(得分:0)

我建议将NSString转换回NSDate并使用标准[NSDate compare:]方法。

答案 1 :(得分:0)

这是因为在任何其他语言中,它被排序为一个字符串,第一个字符3大于1.如果你想让它们以任何其他方式排序,你将不得不实现自己的比较器。

答案 2 :(得分:0)

尝试将NSStrings转换为NSDates,然后对它们进行排序,如下所示:

NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"d MMM yyyy"];
NSDate *date = [formatter dateFromString:@"3 September 2011"];