在iphone dev中根据日期明智排列数组对象?

时间:2011-11-28 04:28:46

标签: objective-c ios cocoa-touch

我有数组的对象,在每个对象中我在一个字符串中有不同类型的字符串我从xm​​l解析得到日期,现在我的任务是根据时间顺序对整个数据进行排序(比如在日期之前到当前日期)然后在日期之后)。我有两个问题。

  1. 如果简单,如何在数组对象上对此结构进行排序 那对我来说会更容易吗?
  2. 我应该使用哪个功能对日期进行排序?

1 个答案:

答案 0 :(得分:3)

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

  • 日期字符串位于NSArrays的第3个索引
  • 日期字符串类似于31-12-2011

代码

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并对其进行排序。类似。