Iphone 字符串排序问题NSFetchedResultsController

Iphone 字符串排序问题NSFetchedResultsController,iphone,objective-c,ios,sorting,nsfetchedresultscontroller,Iphone,Objective C,Ios,Sorting,Nsfetchedresultscontroller,我已经设置了一个字符串(实际上是一个字符串)作为sectionNameKeyPath。这很好,但例如2011年9月16日,比2011年9月2日更早。解决这个问题的最佳方法是什么 更新我的解决方法是用字符串代替字符串,从中生成一个int(例如,2011-09-09的20110909),然后稍后在titleForHeader方法中再次将其转换为字符串我建议将NSString转换回NSDate并使用标准[NSDate compare:]方法。这是因为与任何其他语言一样,它被排序为字符串,第一个字符3

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


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

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

这是因为与任何其他语言一样,它被排序为字符串,第一个字符3大于1。如果希望它们以其他方式排序,则必须实现自己的comparator。

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

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

这是因为3>1…它的排序一点也不好。例如,“2011年11月1日”也将出现在“2011年12月1日”之后。