我有一个填充了自定义对象的NSMutableArray,我必须排序。 我已经读过可以使用以下代码对NSMutableArray进行排序。
NSSortDescriptor * sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey: @ "name" ascending: YES];
NSArray * sortDescriptors = [NSArray arrayWithObject: sortDescriptor];
[array sortUsingDescriptors: sortDescriptors];
然而,这样做,我有一个问题,因为我必须删除dell'NSMutableArray中的元素,如果我尝试使用方法[removeObject],我会收到错误,因为我无法从NSArray中删除对象 有没有办法解决这个问题? 谢谢, 蒙特拉
答案 0 :(得分:2)
您可以在mutableCopy
对象上调用NSArray
,向您返回NSMutableArray
,如下所示:
NSMutableArray *mutableArray = [array mutableCopy];
答案 1 :(得分:1)
你在这里遇到了问题...... NSMutableArray的sortUsingDescriptors:对数组本身进行排序。它不返回NSArray - 它将实例“就地”排序:https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html#//apple_ref/occ/instm/NSMutableArray/sortUsingDescriptors:
所以你的代码是:
NSMutableArray * myArray = ...
[myArray sortUsingDescriptors:@[[[NSSortDescriptor alloc] initWithKey: @ "name" ascending: YES]]];
[myArray removeObjectAtIndex:...]; // or any other method you like