Я работаю с 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 первое имеет больше смысла, чем второе. И у меня есть еще одна строка, она такая же, как и первая, но работает (не в конструкторе ). Может кто-нибудь объяснить мне это, пожалуйста?