Как инициализировать NSMutableArray в Objective C?

Я работаю с Java и изучаю Objective C. Я пытаюсь создать класс, который имеет массив строк и функцию-член для изменения массива. Мой код выглядел так :

@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". После поиска в Интернете я изменил одну строку в конструкторе на :

self.mItems = [self.mItems init];

. Это сработало, но почему? С точки зрения разработчика Java первое имеет больше смысла, чем второе. И у меня есть еще одна строка, она такая же, как и первая, но работает (не в конструкторе ). Может кто-нибудь объяснить мне это, пожалуйста?

11
задан ztan 15 April 2015 в 23:52
поделиться