2017-01-17 9 views
-2

私はこのような2宣言している場合:私はこの逢引を行う場合NSMutableArrayと他のNsMutableArrayの割り当てはどのように割り当てられますか?

NSMutableArray * myArr1; 
NsMutableArray * myArr2; 

を:

myArr1=myArr2; 

私はmyArr1にmyArr2のオブジェクトをコピー、またはmyArr1はmyArr2のように同じポインタであるようなものでアム?これはどういう意味それが二番目である場合

、その私は、後に行う場合:myArr2のオブジェクトを削除

[myArr1 removeobjects...]; 

イム?

最後の質問は、このように動作する場合、私はallocを実現する必要がありますか? myArr1 [[NSMutableArray alloc] init];

私は単にmyArr2のallocを行い、ポインタのようにmyArr1を残すべきですか?

+0

一度に多すぎる質問。割当てによってポインタが割り当てられます。はい、同じ配列を指しているので、両方の変数からオブジェクトを削除します。 3番目の質問はあなたの使い方によって異なります。 – Sulthan

+0

試したときに何を観察しましたか? – vikingosegundo

+0

beriefly:コピーではない、同じポインタ。はい;いいえ。コピーを作る; – holex

答えて

1

myArr1のオブジェクトをmyArr1にコピーしていますか、myArr1と同じですか? myArr2のような同じポインタですか?

(Q1)どちらの配列の要素もコピーしないで、ポインタを同じにしています。また、myArr1が指す元の配列を暗黙的に破棄しています(ARC下)。それはそれへの参照がないので解放される。

いいえ、(Q3)myArr1を割り当てる必要はありません。

(Q2)[myArr1 removeobjects...];を試してみると、myArr1とmyArr2の両方が指す配列が空になります。

関連する問題