Make NSArray from NSMutableArray



我有一个NSMutableArray。我想用NSMutableArray的for循环从那个NSMutableArray制作一个NSArray,我试过了,但我做不到。

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

NSArray *newArray = [myMutableArray copy];

copy是一种简便的方法。如果将它发送给可变/不可变类集群的可变成员,它将返回一个不可变副本。但是,如果您将它发送给一个不可变成员,它只会返回具有另一个保留的相同对象。

还有mutableCopy,它将返回发送到的任何内容的可变版本

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

如果您尝试使用循环是有原因的,因为您想在创建新数组之前更改数组的值,那么有几种方法可以做到这一点(循环、枚举等),但我们需要了解更多细节,然后才能向您提供建议。

不需要循环。您可以从像这样的可变数组创建一个不可变数组

NSArray *myUnMutableArray = [[NSArray alloc] initWithArray:myMutableArray];

最新更新