這些可能都很簡單YES | NO type questions。NSDictionary + ARC +複製與參考
我有一些包含其他NSDictionaries的NSDictionaries。比方說NSDictionary_A和NSDictionary_B。這些在應用程序的生命中持續存在。
track.instrument = [NSDictionary_A objectForKey:@"Blue"];
後來它被改變了:
包含在NSDictionary_A的NSDictionaries是參考各種物體通過
track.instrument = [NSDictionary_A objectForKey:@"Red"];
所以,第一個問題:的@property
儀器合成+保留爲strong
在設置新值之前,對於instrument
,setter設置instrument
的當前值爲nil
,如果是這樣,是否會影響參考源NSDictionary_A
- 換句話說,請將參考設置爲nil'
?聽起來不對,只是寫出來..所以我覺得答案是NO在這裏。此外,它可能並不重要,既然在NSDictionary_A1
參考持續的應用程序生命@property
儀器存儲爲weak
或strong
,但因爲它是一個指針,應該是weak
- YES?
第二個問題:一個NSDictionary在NSDictionary_B被傳遞到一個對象,但它可以在NSDictionary中改變一些值:
track.playbackType = [NSDictionary_B objectForKey:@"Random"];
[track.playbackType objectForKey:@"maxRange"] = 20
;
所以我應該在這裏做一個copy
的NSDictionary在這裏,因爲它的值將會改變,或者我完全誤解了這整個參考傳遞thang?
謝謝,明白了!我甚至沒有考慮過這個不可改變的部分。 – 2012-03-26 09:08:55