如何按字母顺序重新排序NSArray的元素(NSString)?

m0r*_*mer 4 iphone xcode objective-c nsarray

如何按字母顺序重新排序NSArray的元素(NSString)?

Hup*_*tes 5

NSSortDescriptor对于其元素只是NSString实例的数组进行排序是过分的.

NSArray *sortedArray = [unsortedArray sortedArrayUsingSelector: @selector(compare:)];
Run Code Online (Sandbox Code Playgroud)

如果您希望重新排序NSMutableArray实例的元素而不是实例化其元素排序的新数组,那么有一种方法:

[unsortedMutableArray sortUsingSelector: @selector(compare:)];
Run Code Online (Sandbox Code Playgroud)

当您有一个大型对象为您管理数组时,请使用NSSortDescriptor实例,如NSArrayController或NSTableView.如果是这种情况,并且元素只是NSString的实例,那么@ iHS的答案是正确的.


Ish*_*shu 4

你可以使用 sortDescriptor

 NSSortDescriptor *descriptor = [[[NSSortDescriptor alloc] initWithKey:@"yourKey" ascending:YES selector:@selector(caseInsensitiveCompare:)] autorelease];
NSArray * sortedArray =
    [yourArray sortedArrayUsingDescriptors:descriptor];
Run Code Online (Sandbox Code Playgroud)