2011-11-28 54 views
0

我有数组的对象,在每个对象中我有不同类型的字符串在一个字符串中我从XML解析中获取日期,现在我的任务是根据时间明智地排序整个数据(如日期之前,然后当前日期然后之后)。我有两个问题。在iphone开发中按照日期明智排序数组的对象?

  1. 如何排序这个结构阵列状排列的对象,如果简单 然后它会更容易让我吗?
  2. 我应该使用哪种函数来明智地排序日期?
+0

这个问题可能重复:[http://stackoverflow.com/questions/1132806/sort-nsarray-of-date-strings-or-objects](http://stackoverflow.com/questions/1132806/sort -sarray-of-date-strings-or-objects) – Ilanchezhian

+0

可能是重复的,但是旧的:没有objc-block解决方案发布在那里。 – vikingosegundo

回答

3

其中一个选项是使用比较器块。您没有提供足够的信息,所以我做了一些假设:

  • 的日期字符串是NSArrays
  • 日期字符串看起来像31-12-2011

的第3个指数代码

NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[dateFormatter setDateFormat:@"dd-MM-yyyy"]; 

array = [array sortedArrayUsingComparator: ^(id a, id b) { 
    NSArray *array1 = (NSArray *)a; 
    NSArray *array2 = (NSArray *)b; 
    NSDate *date1 = [dateFormatter dateFromString:[array1 objectAtIndex:2]]; 
    NSDate *date2 = [dateFormatter dateFromString:[array2 objectAtIndex:2]]; 

    return [date1 compare:date2] 
} 

但是你也应该考虑有一个代表数据的类。
在这种情况下,您会介入原始dater并为每个数据集创建一个对象,将其放入NSMutableArray并对其进行排序。类似。

+0

WHOA!你只是在那里使用一个块?哇,这很聪明(这让我觉得我应该尝试使用更多这些聪明的块技巧)!优秀的答案! – Cashew