我有一个NSMutableArray
. 我想用我试过的 for 循环来做一个NSArray
, 但我不能这样做。NSMutableArray
NSMutableArray
问问题
208 次
2 回答
7
copy
您可以使用以下方法将可变数组转换为不可变数组,而不是遍历数组项
NSArray *newArray = [myMutableArray copy];
copy
是一种方便的方法。如果将它发送给可变/不可变类集群的可变成员,它会返回一个不可变副本。但是如果你把它发送给一个不可变的成员,它只会返回同一个对象和另一个保留。
还有mutableCopy
一个将返回它发送到的任何内容的可变版本。
返回拥有(保留)对象的行为是内存管理指南建议释放使用new
alloc
retain
or copy
(当然是在非 ARC 环境中)创建的对象的原因
如果您尝试使用循环是有原因的,因为您想在创建新数组之前更改数组的值,那么有几种方法可以做到这一点(循环、枚举等),但我们会在我们为您提供建议之前,需要了解更多详细信息。
于 2012-08-26T10:12:08.627 回答
5
无需循环。您可以像这样从可变数组创建一个不可变数组
NSArray *myUnMutableArray = [[NSArray alloc] initWithArray:myMutableArray];
于 2012-08-26T10:07:47.943 回答