對(duì)于簡(jiǎn)單對(duì)象,及系統(tǒng)自帶的,例如:NSString,NSNumber,NSMutableArray等可用sortedArrayUsingSelector或sortUsingSelector
1.不可變數(shù)組
NSArray *array1 = @[@"11",@"a",@"mm",@"ii",@"tr",@"oo",@"rt"];
NSArray *sortArray = [array1 sortedArrayUsingSelector:@selector(compare:)];
NSLog(@"sortArray = %@",sortArray);
2.把數(shù)組一的值拷貝給給變數(shù)值二,可變數(shù)組
NSMutableArray *array2 = [NSMutableArray arrayWithArray:array1];
//可變數(shù)組排序,沒(méi)有返回值.參數(shù)類型是SEL那么代表此參數(shù)是個(gè)方法
[array2 sortUsingSelector:@selector(compare:)];
NSLog(@"array2 = %@",array2);
3.不可變 數(shù)組中存儲(chǔ)復(fù)雜對(duì)象時(shí)
Person *per1 = [Person personName:@"m淼淼" sex:@"女" age:18];
Person *per2 = [Person personName:@"x香香" sex:@"女" age:22];
Person *per3 = [Person personName:@"w王發(fā)" sex:@"男" age:32];
Person *per4 = [Person personName:@"z張靜" sex:@"女" age:20];
NSArray *arr1 = @[per1,per2,per3,per4];
```c
//NSSortDescriptor *description1 = [NSSortDescriptor sortDescriptorWithKey:arr1 ascending:YES];數(shù)組arr1中存儲(chǔ)的是復(fù)雜對(duì)象,是不可以使用sort方法進(jìn)行排序的.因?yàn)閏ompare只適用于系統(tǒng)的簡(jiǎn)單對(duì)象進(jìn)行排序
```c
NSSortDescriptor *description1 = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:NO];
NSArray *newArray1 = [arr1 sortedArrayUsingDescriptors:@[description1]];
//遍歷數(shù)組輸出結(jié)果
for (Person *p in newArray1) {
NSLog(@"des1=%@", p);
}
4.定義可變數(shù)組,進(jìn)行排序,按名字降序排序
NSMutableArray *mArray = [NSMutableArray arrayWithArray:arr1];
NSSortDescriptor *des2 = [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO];
[mArray sortedArrayUsingDescriptors:@[des2]];
for (Person *p in mArray) {
NSLog(@"%@des2", p);