私は持っていNSMutableArrayます。 試したforループを使っNSArrayて作りたいのですができません。NSMutableArrayNSMutableArray
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 に答える