NSArray的排序方法
1.sortedArrayUsingSelector(按Key值大小对NSDictionary排序)
Person *person1 = [[Person alloc] init]; [person1 setName:@"ABCD"]; [person1 setAge:24]; Person *person2 = [[Person alloc] init]; [person2 setName:@"ACBD"]; [person2 setAge:22]; Person *person3 = [[Person alloc] init]; [person3 setName:@"ABDC"]; [person3 setAge:33]; Person *person4 = [[Person alloc] init]; [person4 setName:@"ACDB"]; [person4 setAge:22]; NSMutableArray *array = [NSMutableArray arrayWithObjects:person1, person3, person4, person2, nil]; [person1 release]; [person2 release]; [person3 release]; [person4 release]; NSSortDescriptor *sortDescriptor1 = [NSSortDescriptor sortDescriptorWithKey:@"_age" ascending:YES]; NSSortDescriptor *sortDescriptor2 = [NSSortDescriptor sortDescriptorWithKey:@"_name" ascending:YES]; NSArray *tempArray = [array sortedArrayUsingDescriptors:[NSArray arrayWithObjects:sortDescriptor1, sortDescriptor2, nil]]; for(NSInteger i = 0; i < [tempArray count]; i++) { NSLog(@"%@--------%d\n", [[tempArray objectAtIndex:i] name], [[tempArray objectAtIndex:i] age]); } // [array sortUsingDescriptors:[NSArray arrayWithObject:sortDescriptor]];// // for(NSInteger i = 0; i < [array count]; i++)// {// NSLog(@"%@--------%d\n", [[array objectAtIndex:i] name], [[array objectAtIndex:i] age]);// }
NSSortDescriptor *sortDescriptor1 = [NSSortDescriptorsortDescriptorWithKey:@"_age"ascending:YES];
NSSortDescriptor *sortDescriptor2 = [NSSortDescriptorsortDescriptorWithKey:@"_name"ascending:YES];
NSArray *tempArray = [array sortedArrayUsingDescriptors:[NSArrayarrayWithObjects:sortDescriptor1, sortDescriptor2, nil]];
这里的NSArray中的第一元素表示首先按照这个元素的升序或者降序进行排序,对于有重复项的,再按照第二元素进行排序,依次进行类推