2013-11-04 295 views
1

我想知道是否有可能进行排序的NSMutableArray,同时保持它的NSMutableArray(不是NSArray)。无论是创建一个新的排序数组或重用相同的数组都可以。排序的NSMutableArray到一个NSMutableArray

---------编辑-----------------

感谢您的所有答案。

[unsortedList sortUsingSelector:@selector(compareStage:)]; 

排序unsortedList。

我与分类* Array * UsingSelector混淆。

+0

一个NSMutableArray *** ***是一个NSArray,这是一个子类 –

+0

是的,但我需要在排序后对阵列进行更多的转换。但是对NSArray来说这是不可能的,这就是为什么我想要保留NSMutableArray的原因 – Anthone

+3

你看过“NSMutableArray”的文档吗?有几种排序可变数组的方法。 – rmaddy

回答

2

您可以按你原来的NSMutableArray本身使用这些方法...

- (void)sortUsingFunction:(NSInteger (*)(id, id, void *))compare context:(void *)context; 
- (void)sortUsingSelector:(SEL)comparator; 
- (void)sortUsingComparator:(NSComparator)cmptr NS_AVAILABLE(10_6, 4_0); 
- (void)sortWithOptions:(NSSortOptions)opts usingComparator:(NSComparator)cmptr NS_AVAILABLE(10_6, 4_0); 
- (void)sortUsingDescriptors:(NSArray *)sortDescriptors;  // NSSortDescriptorSorting 
0

使用下面的代码:

NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"someKey" ascending:YES]; 
NSMutableArray *sortedArray = [[unsortedMutableArray sortedArrayUsingDescriptors:@[sortDescriptor]] mutableCopy]; 
+0

当然,你可以简单地使用'mutableCopy'与'arrayWithArray'。 –

+0

你可以使用现代语法来创建描述符数组:'@ [sortDescriptor]' – rmaddy

+0

同意。更新了我的答案。 – Abhinav