私が作成しているプロジェクトには、さまざまなクラスがあります。クラスの 1 つに、別のクラスのオブジェクトを保持する NSMutableArray のインスタンスがあります。この話題については、しっかりと理解しているつもりだったのですが、どういうわけかまた頭の中がごちゃごちゃになってしまいました。
このクラスのインスタンスを初期化するとき、次の初期化メソッドがあります。
- (MMShowMovement *) initWithMovementName: (NSString *) name andNumber: (NSInteger) number {
if( [super init] ) {
[self setMovementTitle: name];
[self setMovementNumber: number];
[self setDotArray: [[NSMutableArray alloc] init]];
}
return self;
}
後で、このクラスのインスタンスが作成された後、オブジェクトを NSMutableArray "dotArray" に追加できます。これがその方法です。
- (void) addDot: (MMDot *) dot {
[dotArray addObject: dot];
}
(私は知っています、それは単純です) このメソッドで「dotArray」を使用すると、このメソッドが呼び出されたクラスのインスタンスの dotArray オブジェクトにアクセスしているのではないでしょうか? または、ここでも self キーワードを使用する必要がありますか?
- (void) addDot: (MMDot *) dot {
[[self dotArray] addObject: dot];
}
正直なところ、よくわかりません。前者だと思いますが、理由はわかりません。また、このメソッドで self キーワードを使用する必要はありません。オブジェクトにアクセスするためにイニシャライザで使用する必要があるのはなぜですか?