我来自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"
。在互联网上搜索后,我将构造函数中的单行更改为:
self.mItems = [self.mItems init];
它工作正常,但是为什么?从Java开发人员的角度来看,第一个比第二个更有意义。而且我有另外一行,它与第一行相同,但它正在工作(不在构造函数中)。有人可以向我解释这个吗?
这些问题的答案可能已经解决的问题,但直到我们看到了'mItems'属性的声明,我们不能肯定。 –