【问题标题】:Sorting Array of custom class object by date property按日期属性对自定义类对象的数组进行排序
【发布时间】:2012-08-05 15:15:48
【问题描述】:

我有一个从自定义类创建的对象数组。每个对象都有一个 NSDate 属性。根据日期属性对所有这些对象进行排序的最简单快捷的方法是什么? (按从最近到最近的顺序)。

【问题讨论】:

    标签: objective-c ios object nsdate


    【解决方案1】:
    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"thisIsTheNameOfYourDateProperty" ascending:NO];
    NSArray *orderedArray = [arrayOfCustomObjects sortedArrayUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];
    

    【讨论】:

      【解决方案2】:

      试试这个:

      NSArray* newArray = [array sortedArrayUsingComparator: ^NSComparisonResult(MyClass *c1, MyClass *c2)
      {
          NSDate *d1 = c1.date;
          NSDate *d2 = c2.date;
      
          return [d1 compare:d2];
      }];
      

      还有一些方法可以就地对可变数组进行排序,类似于上述。

      编辑:我知道还有其他方法可以使用更少的代码来做到这一点,但我真的更喜欢使用块枚举器来处理各种事情,所以我发现实践起来很有用。您还可以调整这些以使用更多非标准排序(整数与对象)并使用 NSLog() 实际记录发生的事情...)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-06-26
        • 2012-04-24
        • 1970-01-01
        • 2011-02-16
        相关资源
        最近更新 更多