私はAppleによるあなたの2番目のiOSアプリを研究しています。このプロジェクトはARCに基づいています。
そして、例を研究しているときに、例の次のコードについて質問がありました。
// header
@interface BirdSightingDataController : NSObject
@property (nonatomic, copy) NSMutableArray *masterBirdSightingList;
@end
// implementation
- (void)setMasterBirdSightingList:(NSMutableArray *)newList {
if (_masterBirdSightingList != newList) {
_masterBirdSightingList = [newList mutableCopy];
}
}
- (void)initializeDefaultDataList {
NSMutableArray *sightingList = [[NSMutableArray alloc] init];
self.masterBirdSightingList = sightingList;
…
}
このコードがデフォルトのsetterメソッドであるを上書きした理由はわかりませんmasterBirdSightingList
。
masterBirdSightingList
プロパティはタイプであり、タイプもあるインスタンス変数にNSMutableArray
コピーされます。これは完璧だと思います。_masterBirdSightingList
NSMutableArray
なぜ_masterBirdSightingList = [newList mutableCopy];
ここにあるのですか?setMasterBirdSightingList:
タイプの引数で呼び出された場合に備えてNSArray
?