Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 什么';按字母顺序排列NSMutableArray的正确方法是什么?_Objective C_Nsmutablearray - Fatal编程技术网

Objective c 什么';按字母顺序排列NSMutableArray的正确方法是什么?

Objective c 什么';按字母顺序排列NSMutableArray的正确方法是什么?,objective-c,nsmutablearray,Objective C,Nsmutablearray,我从堆栈溢出的答案中找到了这些代码片段,它们都不能很好地解决我的问题 来自的第一段代码没有给出警告,但随后出现崩溃 NSSortDescriptor *nameSort = [NSSortDescriptor sortDescriptorWithKey:@"Name" ascending:YES]; [myArray sortUsingDescriptors:[NSArray arrayWithObject:nameSort]]; 虽然第二段代码在我的代码中每次使用都会生成警告,但会生成我想要

我从堆栈溢出的答案中找到了这些代码片段,它们都不能很好地解决我的问题

来自的第一段代码没有给出警告,但随后出现崩溃

NSSortDescriptor *nameSort = [NSSortDescriptor sortDescriptorWithKey:@"Name" ascending:YES];
[myArray sortUsingDescriptors:[NSArray arrayWithObject:nameSort]];
虽然第二段代码在我的代码中每次使用都会生成警告,但会生成我想要的结果:

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

因此,我的问题是,为什么第二种方法使用警告“
不兼容指针类型从不兼容类型“NSArray*”分配给“NSMutableArray*”
”?

如果您尝试执行NSMutableArray的就地排序,您应该使用
sortUsingSelector:
而不是使用选择器重新分配
sortedarray的结果:
(它被声明为普通NSArray,而不是NSMutableArray)。

文档是您的朋友!与之相比,我试着从
sortUsingSelector:
分配,而不是将其视为一种方法,这太尴尬了。XD谢谢,我以前尝试时没有使用它,因为我尝试过:
myMutableArray=[myMutableArray sortUsingSelector:@selector(caseInsensitiveCompare:)]
而不是使用实际的
或sortUsingSelector
方法。