如何从NSSet返回NSMutableArray

nod*_*nja 103 cocoa-touch objective-c nsmutablearray nsarray nsset

我能把一个内容NSSet放到NSMutableArray这样的:

NSMutableArray *array = [set allObjects];
Run Code Online (Sandbox Code Playgroud)

编译器抱怨但是因为[set allObjects]返回的NSArray不是NSMutableArray.该如何修复?

dre*_*lax 216

由于-allObjects返回一个数组,您可以创建一个可变版本:

NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];
Run Code Online (Sandbox Code Playgroud)

或者,或者,如果要处理对象所有权:

NSMutableArray *array = [[set allObjects] mutableCopy];
Run Code Online (Sandbox Code Playgroud)

  • 注意:如果`set`为`nil`,这两种方法之间存在细微差别. (7认同)