我制作了这个代码来对nsmutablearray进行排序但是如何发送回NSMutablearray?我需要这个,因为稍后在我的mutablearray中添加信息。
- (NSArray *)trierTableau:(NSMutableArray *)ptableau champsFiltre:(NSString *)champs {
NSSortDescriptor *lastDescriptor =
[[[NSSortDescriptor alloc]
initWithKey:champs
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
NSArray * descriptors = [NSArray arrayWithObjects:lastDescriptor, nil];
NSArray * sortedArray = [ptableau sortedArrayUsingDescriptors:descriptors];
return sortedArray;
}
答案 0 :(得分:0)
如果您想对就地NSMutableArray
进行排序,则可以调用sortUsingDescriptors:
而不是sortedArrayUsingDescriptors:
,后者会返回数组的已排序副本。 sortUsingDescriptors:
会对现有的NSMutableArray
进行排序。
e.g。
-(void)trierTableau:(NSMutableArray*)ptableau champsFiltre:(NSString*) champs {
NSSortDescriptor *lastDescriptor =
[[[NSSortDescriptor alloc]
initWithKey:champs
ascending:YES
selector:@selector(localizedCaseInsensitiveCompare:)] autorelease];
NSArray * descriptors = [NSArray arrayWithObjects:lastDescriptor, nil];
[ptableau sortUsingDescriptors:descriptors];
}
这样您就不必返回NSMutableArray
。
如果您确实需要数组的已排序副本,则需要创建新的NSMutableArray
,使用addObjectsFromArray:
复制元素,然后使用sortUsingDescriptors:
新阵列。但我认为排序现有的NSMutableArray
可能就是你想要的。