【问题标题】:Sorting NSMutableArray By Object's Property按对象的属性对 NSMutableArray 进行排序
【发布时间】:2011-08-09 19:11:03
【问题描述】:

所以这是一个相当基本的问题,关于对自定义对象的NSMutableArray 进行排序的最佳方法。

我有一个 NSMutableArray 的自定义对象,每个对象都有一个 NSStringNSDate 一起去。我需要按最新的对象(所以最新的NSDate)对数组进行排序,我很确定如果这是一个只有NSDate 的数组,我可以简单地使用NSDate compare: NSDate,但是因为我需要所有对象排序而不仅仅是日期,我不确定是否可以使用该方法。

在伪代码方面,我需要:查看单个对象,确定当前对象的NSDate是否是数组中的下一个最大的,如果是,移动对象,而不仅仅是日期。

再次,这是我什至犹豫要问的问题,因为它是如此基本,但如果有一个预先存在的类方法基本上可以满足我的需求,我不想去编写一些效率极低的方法,搜索对象的子属性数组,并根据子属性对对象进行排序。

感谢您的帮助。

【问题讨论】:

    标签: iphone sorting nsmutablearray nsdate


    【解决方案1】:

    NSSortDescriptorss 让这一切变得非常简单。使用NSMutableArray,您可以使用sortUsingDescriptors: 对现有数组进行排序,使用不可变数组,您可以使用sortedArrayUsingDescriptors: 创建一个新数组

    //This will sort by stringProperty ascending, then dateProperty ascending
    [mutable_array sortUsingDescriptors:
     @[
      [NSSortDescriptor sortDescriptorWithKey:@"stringProperty" ascending:YES],
      [NSSortDescriptor sortDescriptorWithKey:@"dateProperty" ascending:YES]
      ]];
    

    【讨论】:

    【解决方案2】:

    这个小 sn-p 对我很有用:

    [students sortUsingDescriptors:@[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES]]];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-02-08
      • 2011-03-21
      • 2013-02-12
      • 2023-04-03
      • 2012-01-17
      • 1970-01-01
      • 2018-07-02
      相关资源
      最近更新 更多