私はJavaの背景から来て、私はObjective Cを学んでいます。配列を変更するための文字列配列とメンバ関数を持つクラスを作成しようとしています。私のコードは次のようになりました:Objective CでNSMutableArrayを初期化する方法は?
@implementation TAWChapter
@synthesize mSubject;
@synthesize mItems;
- (id) init{
self.mItems = [[NSMutableArray alloc] init];
return self;
}
- (void) setSubject:(NSString *)subject{
self.mSubject = subject;
}
- (void) addItem:(NSString *)item{
[self.mItems addObject:@"asdf"];
}
@end
これはうまくいきませんでした。 "[__NSArrayI addObject:]: unrecognized selector sent to instance "
と"NSInvalidArgumentException"
があります。インターネットで検索した結果、コンストラクタの1行を次のように変更しました:
self.mItems = [self.mItems init];
なぜですか? Java開発者の視点から見ると、第1のものは第2のものよりも理にかなっています。私は別の行を持っていますが、最初の行と同じですが、それは動作しています(コンストラクタではありません)。誰かが私にこれを説明できますか?
の答えは、おそらく問題に対処してきたが、我々は 'mItems'プロパティの宣言が表示されるまで、我々は確認することはできません。 –