使用字符串日期排序数组目标C.

时间:2011-06-03 14:14:10

标签: objective-c sorting nsmutablearray

我有一个NSMutableArray of Strings。数组中的字符串,从日期转换为字符串,我需要对它们进行排序并在tableview中显示它们。

我需要:

2011年6月24日 2011年6月26日 2011年7月1日

等等。

我知道有类似的问题已被问到,但我没有得到它的工作。如果有人可以帮助我,我真的很感激!

3 个答案:

答案 0 :(得分:4)

在它们仍然是日期时对它们进行排序,将它们保存为日期的排序列表,并且只将它们格式化为显示所需的文本(即,在-tableView:cellForIndexPath:期间)。

或者,ISO 8601日期格式(示例格式化日期为20110603T1345.123-4)大多按字典顺序排序,与日期相同。不同时区的时间或跨越夏令时的时间可以使这个属性无效,所以将日期留作日期仍然是您最好的选择。

答案 1 :(得分:0)

简单的方法是创建表单

的功能
NSInteger funcName(id left, id right, void* extra);

然后你可以使用NSMutableArray的sortUsingFunction:context:传递你的比较函数.Jeremy说明日期更容易排序是正确的,它们内置了比较函数:

– isEqualToDate:
– earlierDate:
– laterDate:
– compare:

有关排序信息,请参阅NSMutableArray;有关其比较方法,请参阅NSDate

答案 2 :(得分:0)

您的NSMuatbleArray必须拥有NSDate个对象。

首先,您需要使用-[NSMutableArray sortUsingSelector:]对数组进行排序,并且需要传递 @selector(compare :)

compare:的{​​{1}}函数将为您完成工作,并按升序对数组进行排序。

完成上述操作后,您只需拨打NSDate的{​​{1}}功能。