Objective-C:无法访问合成变量

时间:2014-02-10 15:06:01

标签: objective-c properties cocos2d-iphone synthesize

我正在使用Cocos2d并希望从另一个CCScene访问变量(CakesEaten)。

// in MainScene.h
@interface MainScene : CCScene{
    int CakesEaten;
}
@property int CakesEaten;

// in MainScene.m
@implementation
@synthesize CakesEaten;

// at the top of ScoreScreen.m
#import "MainScene.h"
// in the ScoreScreen.m init method
MainScene.CakesEaten = 9999

给出错误:在MainScene类型的对象上找不到属性“CakesEaten”。这是我在构建时收到的唯一错误。

2 个答案:

答案 0 :(得分:0)

要访问任何属性,是否已合成,您需要该类的实例:

MainScene *scene = [[MainScene alloc] init];
scene.CakesEaten = 9999;

注意:最新版本的Xcode不需要@synthesize,除非您想要更改默认使用的变量的名称。您可以安全地删除该行以及成员变量的声明。

最终结果应如下所示:

@interface MainScene : CCScene
@property (nonatomic, readwrite) int CakesEaten;
@end

答案 1 :(得分:0)

不是MainScene,只是自我。

self.CakesEaten = 9999