2、们将要排序的对象是一个Persion类,如下定义:1.@interface Person : NSObject 2.@property (nonatomic, copy) NSString *name; 3.@property (nonatomic, copy) NSString *surname; 4.@property (nonatomic, strong) NSDate *dateOfBirth; 5.@end 而数组中包含如下内容:1.Smith John 03/01/1984 2.Andersen Jane 16/0
3、3/1979 网址:edu.51CTO.com1.Clark Anne 13/09/1995 2.Smith David 19/07/1981 3.Johnson Rose 22/02/1989 使用NSComparator进行排序comparator实际上是用一个block对象作比较操作。它的定义如下所示:1.typedef NSComparisonResult (^NSComparator)(id obj1, id obj2); 上面的参数(obj1、obj2)就是我们将要做比较的对象。block返回的结果为NSCompa
5、n Jane 2.Clark Anne 3.Johnson Rose 4.Smith John 5.Smith David 使用NSDescriptor进行排序Sortdescriptor不仅可以用来对数组进行排序,还能指定element在tableview中的排序,以及CoreData中对fetchrequest返回的数据做排序处理。通过sortdescriptor可以很方便的对数组进行多个key的排序。下面来看看如何对我们的数组做surname排序,然后在进行name排序:1.NSSortDescriptor *first
7、or, secondDescriptor, nil]; 2. 3.NSArray *sortedArray = [self.persons sortedArrayUsingDescriptors:sortDescriptors]; 上面代码的排序结果如下所示:1.Andersen Jane 2.Clark Anne 3.Johnson Rose 4.Smith David 5.Smith John 使用selector进行排序当面,我们也可以定义自己的方法进行两个对象做比较,并将该方法用于数组排序。comparator消息会被