Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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
Iphone 从NSMutableArray生成NSArray_Iphone_Ios - Fatal编程技术网

Iphone 从NSMutableArray生成NSArray

Iphone 从NSMutableArray生成NSArray,iphone,ios,Iphone,Ios,我有一个NSMutableArray。我想使用我尝试过的NSMutableArray的for循环从该NSMutableArray生成一个NSArray,但我做不到。无需循环。您可以像这样从可变数组创建不可变数组 NSArray *myUnMutableArray = [[NSArray alloc] initWithArray:myMutableArray]; 您可以使用copy方法将可变数组转换为不可变数组,而不是循环遍历数组项 复制是一种简便的方法。如果您将其发送给可变/不可变类集群的可变

我有一个NSMutableArray。我想使用我尝试过的NSMutableArray的for循环从该NSMutableArray生成一个NSArray,但我做不到。

无需循环。您可以像这样从可变数组创建不可变数组

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

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

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

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

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


如果您尝试使用循环是有原因的,因为您想在创建新数组之前更改数组的值,那么有几种方法可以执行循环、枚举、,等等,但我们需要了解更多详细信息才能向您提供建议。

发布不适用于您的代码,并让这里的人帮助您修复。谢谢您………@user1594692如果此答案对您有帮助,请确保将其标记为正确答案。
NSArray *newArray = [myMutableArray copy];