私は持っていNSMutableArray
ます。 試したforループを使っNSArray
て作りたいのですができません。NSMutableArray
NSMutableArray
質問する
208 次
2 に答える
7
配列アイテムをループするのではなく、copy
メソッドを使用して可変配列を不変配列に変換できます。
NSArray *newArray = [myMutableArray copy];
copy
便利な方法です。可変/不変クラスクラスターの可変メンバーに送信すると、不変のコピーが返されます。ただし、不変のメンバーに送信すると、同じオブジェクトが別の保持で返されます。
mutableCopy
送信先の変更可能なバージョンを返すものもあります。
new
alloc
retain
所有されている(保持されている)オブジェクトを返す動作は、メモリ管理ガイドラインが、またはcopy
(もちろん、非ARC環境で)作成されたオブジェクトを解放することを推奨する理由です。
新しい配列を作成する前に配列の値を変更したいため、ループを使用しようとしている理由がある場合、これを行うにはいくつかの方法(ループ、列挙など)がありますが、アドバイスする前に、詳細を知る必要があります。
于 2012-08-26T10:12:08.627 に答える
5
ループする必要はありません。このような可変配列から不変配列を作成できます
NSArray *myUnMutableArray = [[NSArray alloc] initWithArray:myMutableArray];
于 2012-08-26T10:07:47.943 に答える