2012-05-10 14 views
0

こんにちは私はコピーしようとしている配列を持っているから、要素を削除します。問題は、私はコピーから要素を削除していると思いますが、元の配列から要素を削除することも考えられます。私は何が起こっているのか分かりません。私は客観的なCに新しいので、どんな助けも大歓迎です。目的c配列何とかリンク

NSArray *newarray = appDelegate.orginalArray; 

[newarray removeObjectAtIndex: 2]; 

オブジェクトを削除した後で配列を見ると、newarrayとorginalArrayの両方からオブジェクトが削除されたのはなぜですか?

感謝

答えて

2

これはコピーを作成されていません。 newArrayappDelegate.originalArrayは同じオブジェクトを示します。あなたはこれを実行する必要があります:

また
NSMutableArray *newArray = [appDelegate.originalArray mutableCopy]; 

私はコピーを確保するためにNSMutableArraymutableCopyを使用していますので注意が可変である

0

ポインタ、バディ、および可変/不変(すなわち追加と削除項目をサポート)抽象化。 newarrayappDelegate.originalArrayは、同じ不変(変更不可能)の配列に対するポインタ(参照)です。あなたは欲しい:

NSArray *newarray = [appDelegate.orginalArray mutableCopy]; 
関連する問題