0

我从 Stack Overflow 上的答案中找到了这些代码片段,但都没有优雅地解决我的问题。

“按字母顺序排序数组...”中的第一段代码没有给出任何警告,但随后出现了崩溃。

NSSortDescriptor *nameSort = [NSSortDescriptor sortDescriptorWithKey:@"Name" ascending:YES];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:nameSort]];

虽然第二段代码在我的代码中每次使用都会生成一个警告,但会生成我想要的结果:

myMutableArray = [myMutableArray sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];

所以,我的问题是为什么第二种方法适用于警告“ Incompatible pointer types assigning to 'NSMutableArray*' from incompatible type 'NSArray*'”?

4

1 回答 1

2

如果您尝试对 NSMutableArray 进行就地排序,则应该使用sortUsingSelector:而不是重新分配结果sortedArrayUsingSelector:(声明为普通 NSArray,而不是 NSMutableArray)。

于 2012-06-13T22:44:20.857 回答