我来自 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 开发人员的角度来看,第一个比第二个更有意义。而且我还有另一行,它与第一行相同,但它正在工作(不在构造函数中)。有人可以向我解释一下吗?