可能重复:
How to sort array having numbers as string in iPhone?
How Do I sort an NSMutable Array with NSNumbers in it?
我有一个随机数字序列的NSMutableArray。我必须按升序和降序对它们进行排序?是否有任何内置功能,如果没有如何做到这一点。数组是这样的:
arr = [“12”,“85”,“65”,“73”,“21”,“87”,“1”,“34”,“32”];
答案 0 :(得分:4)
对包含对象的NSMutableArray(基于键)进行排序
首先,您需要创建一个NSSortDescriptor并告诉它对哪个键进行排序。
NSSortDescriptor *lastNameSorter = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
[personList sortUsingDescriptors:[NSArray arrayWithObject:lastNameSorter]];
希望 this Full tutorial 可以帮助您。
答案 1 :(得分:3)
使用类NSMutableArray的sortUsingSelector
实例方法。
使用此行(但如果是数字,则需要使用NSNumbers而不是字符串)
[myArray sortUsingSelector:@selector(compare:)];
按升序对数组进行排序。对于降序,在上一行之后添加此行。
myArray=[myArray reverseObjectEnumerator] allObjects];
答案 2 :(得分:1)
您案例的示例代码:
NSArray *sortedArray;
sortedArray = [anArray sortedArrayUsingFunction:intSort context:NULL];
NSInteger intSort(id num1, id num2, void *context)
{
int v1 = [num1 intValue];
int v2 = [num2 intValue];
if (v1 < v2)
return NSOrderedAscending;
else if (v1 > v2)
return NSOrderedDescending;
else
return NSOrderedSame;
}
你可以开发一个逻辑来在intsort方法中对数组进行排序,并将其作为参数传递给上面的方法。
有许多预定义的方法,如:
关注developer.apple.com以获取api
好运TNX