Objective c 如何对NSArray的元素进行排序?
下面的数组包含其他数组Objective c 如何对NSArray的元素进行排序?,objective-c,ios,Objective C,Ios,下面的数组包含其他数组 NSArray *results = [[NSArray alloc] initWithObjects: [NSArray arrayWithObjects:@"Nickname1", [NSNumber numberWithBool:YES], nil], [NSArray arrayWithObjects:@"Nickname2", [NSNumber numberWithBool:NO], nil], [NSArray arrayWithObjects:@"Nick
NSArray *results = [[NSArray alloc] initWithObjects:
[NSArray arrayWithObjects:@"Nickname1", [NSNumber numberWithBool:YES], nil],
[NSArray arrayWithObjects:@"Nickname2", [NSNumber numberWithBool:NO], nil],
[NSArray arrayWithObjects:@"Nickname3", [NSNumber numberWithBool:YES], nil],
[NSArray arrayWithObjects:@"Nickname4", [NSNumber numberWithBool:YES], nil],
nil ];
如何根据第二个参数(布尔参数)对该数组的元素进行排序。我可以使用NSSortDescriptor吗?(我要所有的答案都是肯定的)
谢谢您可以使用
sortedarrayingcomparator
方法进行此操作。由于希望将YES
值(值为1的常量)排序在NO
值(常量值为0)之前,因此只需颠倒compare:
调用中对象的顺序即可
NSArray *sortedArray = [results sortedArrayUsingComparator:^(id o1, id o2) {
NSArray *ary1 = (NSArray *)o1;
NSArray *ary2 = (NSArray *)o2;
return [[ary2 objectAtIndex:1] compare:[ary1 objectAtIndex:1]];
}];
您可以使用
sortedarrayingcomparator
方法进行此操作。由于希望将YES
值(值为1的常量)排序在NO
值(常量值为0)之前,因此只需颠倒compare:
调用中对象的顺序即可
NSArray *sortedArray = [results sortedArrayUsingComparator:^(id o1, id o2) {
NSArray *ary1 = (NSArray *)o1;
NSArray *ary2 = (NSArray *)o2;
return [[ary2 objectAtIndex:1] compare:[ary1 objectAtIndex:1]];
}];