按对象的属性sortingNSMutableArray

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

我有一个自定义对象的NSMutableArray ,每个对象与NSStringNSDate一起去。 我需要通过最新的对象(如此最新的NSDate )sorting数组,我敢肯定,我可以简单地使用NSDate compare: NSDate如果这是一个NSDate的数组,但因为我需要所有的对象进行sorting,而不是只是date,我不确定是否可以使用该方法。

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

再次,这是我甚至犹豫要问,因为它是如此基本,但我不想写一些非常低效的方法,如果有一个预先存在的类方法,将基本上做我想做的,search一个对象的数组子属性并根据子属性对对象进行sorting。

谢谢你的帮助。

NSSortDescriptors使这非常简单。 使用NSMutableArray您可以使用sortUsingDescriptors:对现有数组进行sortUsingDescriptors:使用sortUsingDescriptors:创build一个新数组sortedArrayUsingDescriptors:

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

这个小片段对我很好:

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