从NSMutableArray制作NSArray

use*_*692 -3 iphone ios

我有一个NSMutableArray.我想NSArray从 我尝试NSMutableArray使用for循环,NSMutableArray但我不能这样做.

Abi*_*ern 7

您可以使用该copy方法将可变数组转换为不可变数组,而不是遍历数组项

NSArray *newArray = [myMutableArray copy];
Run Code Online (Sandbox Code Playgroud)

copy是一种方便的方法.如果将其发送到可变/不可变类集群的可变成员,则返回不可变副本.但是如果将它发送给不可变成员,它只返回与另一个保留相同的对象.

还有mutableCopy哪些将返回发送到它的任何可变版本.

返回拥有(保留)对象的行为是内存管理指南建议释放使用new alloc retain或创建的对象的原因copy(当然,在非ARC环境中)

如果你有一个原因试图使用循环,因为你想在创建一个新数组之前更改数组的值,那么有几种方法可以做到这一点(循环,枚举等),但我们会在我们建议你之前需要了解更多细节.


hol*_*hol 5

没有必要循环.您可以从像这样的可变数组创建一个不可变数组

NSArray *myUnMutableArray = [[NSArray alloc] initWithArray:myMutableArray];
Run Code Online (Sandbox Code Playgroud)

  • @ user1594692如果这个答案对您有所帮助,请务必将其标记为正确答案. (2认同)