我在Stack Overflow上的答案中找到了这些代码片段,但它们都没有很好地解决我的问题。
来自"Sorting array in alphabetic order…"的第一段代码没有给出任何警告,但紧随其后的是崩溃。
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*'
"?
发布于 2012-06-14 06:44:21
如果你想做一个就地的NSMutableArray,你应该使用sortUsingSelector:
而不是重新分配sortedArrayUsingSelector:
的结果(它被声明为一个普通的NSArray,而不是一个NSMutableArray)。
https://stackoverflow.com/questions/11024332
复制相似问题