0

我有一个 NSMutableArray 填充了自定义对象,我必须进行排序。我读过可以使用以下代码对 NSMutableArray 进行排序。

NSSortDescriptor * sortDescriptor;
sortDescriptor = [[NSSortDescriptor alloc] initWithKey: @ "name" ascending: YES];
NSArray * sortDescriptors = [NSArray arrayWithObject: sortDescriptor];
[array sortUsingDescriptors: sortDescriptors];

但是,在这样做时,我遇到了一个问题,因为我必须删除 dell'NSMutableArray 中的元素,如果我尝试使用方法 [removeObject] 我会收到错误,因为我无法从 NSArray 中删除对象有没有办法解决这个问题?谢谢你,文森佐

4

2 回答 2

2

您可以调用mutableCopy一个NSArray对象以返回给您,NSMutableArray如下所示:

NSMutableArray *mutableArray = [array mutableCopy];
于 2013-11-06T07:56:22.057 回答
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
于 2013-11-06T07:57:11.780 回答