これはおそらくかなり単純なYES | NOタイプの質問です。NSDictionary + ARC +コピーと参照の比較
私は他のNSDictionariesを含むNSDictionariesをいくつか持っています。 NSDictionary_AとNSDictionary_Bとしましょう。これらはアプリの存続期間中存続します。
track.instrument = [NSDictionary_A objectForKey:@"Blue"];
後には変更されます:NSDictionary_Aに含まれる
NSDictionariesは、さまざまなオブジェクトへの参照によって渡され
track.instrument = [NSDictionary_A objectForKey:@"Red"];
だから、最初の質問:@property
器具は合成されとして保持される言い換えれば、nil'
への参照を設定する -のでinstrument
のsetterは、新しい値を設定する前に、nil
にinstrument
の現在の値を設定し、そうであれば、これはNSDictionary_A
で参照のソースには影響しないのですか?私は答えがNOここにあると思います。また、おそらくNSDictionary_A1
内の参照は、アプリの生活のために持続するので、@property
機器がweak
かstrong
として格納されていることは重要ではありませんが、それはポインタであることから、weak
する必要があります - YES?
2番目の質問:NSDictionary_BでアンNSDictionaryのは、オブジェクトに渡されますが、それはそのNSDictionaryの内の値の一部を変更することができます
track.playbackType = [NSDictionary_B objectForKey:@"Random"];
[track.playbackType objectForKey:@"maxRange"] = 20
。
NSDictionaryのcopy
は値が変更されるか、またはthangを渡すこの全体の参照を完全に誤解しているので、ここで作成する必要がありますか?
ありがとうございました!私は不変部分を考慮していませんでした。 –