NSMutableArray的未声明标识符

时间:2012-11-27 13:20:14

标签: objective-c

在viewController的接口(.h)中:

@property (strong, nonatomic) NSMutableArray* myMutableArray;

计算方法如下:

- (void) calculate {

    DataObject* pObj = [DataObject objStart:(dataStart) objEnd:(dataEnd) objDay:(day)];

    [myMutableArray addObject:pObj];

}

我收到此错误消息:

使用未声明的标识符'myMutableArray':你的意思是'_myMutableArray'吗?

2 个答案:

答案 0 :(得分:1)

如果您没有手动合成属性(@synthesize myMutableArray;)  编译器将创建一个带下划线前缀的iVar(与@synthesize myMutableArray = _myMutableArray相同);

要访问它,请使用

[_myMutableArray addObject:pObj];

[self.myMutableArray addObject:pObj];

如果你像这样手动合成

@synthesize myMutableArray = nameOfMyBackingIVar

您可以通过这种方式访问​​NSMutableArray

[nameOfMyBackingIVar addObject:pObj];

答案 1 :(得分:1)

您正在使用XCode4:)

这里你不需要@synthesize。编译器将所有ivars本身创建为_ivarName。 即,

@synthesize myMutableArray=_myMutableArray;

如果你想覆盖它,那么你可以

@synthesize myMutableArray; 

或者,就这样

@synthesize myMutableArray=myMutableArray;