Objective c 在iphone开发中根据日期对数组对象进行排序?

Objective c 在iphone开发中根据日期对数组对象进行排序?,objective-c,ios,cocoa-touch,Objective C,Ios,Cocoa Touch,我有数组的对象,在每个对象中我有不同类型的字符串,在一个字符串中我从xml解析中获取日期,现在我的任务是按照时间顺序对整个数据进行排序(比如日期之前、日期之后、当前日期之前)。我有两个问题 如果简单的话,如何像数组的对象一样对这个结构上的数组进行排序 那对我来说就容易多了 我应该使用哪个函数按日期排序 几个选项之一是使用比较器块。你没有提供足够的信息,所以我做了一些假设: 日期字符串位于NSArrays的第三个索引处 日期字符串看起来像2011年12月31日 代码 但是你也应该考虑有一个代表

我有数组的对象,在每个对象中我有不同类型的字符串,在一个字符串中我从xml解析中获取日期,现在我的任务是按照时间顺序对整个数据进行排序(比如日期之前、日期之后、当前日期之前)。我有两个问题

  • 如果简单的话,如何像数组的对象一样对这个结构上的数组进行排序 那对我来说就容易多了
  • 我应该使用哪个函数按日期排序

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

    • 日期字符串位于NSArrays的第三个索引处
    • 日期字符串看起来像2011年12月31日
    代码

    但是你也应该考虑有一个代表数据的类。


    在这种情况下,您将在原始日期器上进行交互,并为每个数据集创建一个对象,将其放入NSMutableArray中并对其进行排序。类似。

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

    • 日期字符串位于NSArrays的第三个索引处
    • 日期字符串看起来像2011年12月31日
    代码

    但是你也应该考虑有一个代表数据的类。


    在这种情况下,您将在原始日期器上进行交互,并为每个数据集创建一个对象,将其放入NSMutableArray中并对其进行排序。类似。

    此问题的可能重复:可能重复,但旧:没有发布objc块解决方案。此问题的可能重复:可能重复,但旧:没有发布objc块解决方案。哇!你刚才用了一个街区吗?哇,这真是太聪明了(这让我觉得我应该尝试使用更多这些聪明的拦网技巧)!回答得很好!哇!你刚才用了一个街区吗?哇,这真是太聪明了(这让我觉得我应该尝试使用更多这些聪明的拦网技巧)!回答得很好!
    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]
    }