0

在 viewcontroller 文件中,我调用 CCLayer

 [director_ runWithScene:[game1 scene]];

game1 是一个 CCLayer,在

+ (CCScene *)scene
{
    CCScene *scene = [CCScene node];
    game1 *layer = [game node];
    [scene addChild:layer];

    return scene;
}



- (id)init
{
    if ((self = [super init]))
    {
    }
    ..
}

在原始视图控制器中,我尝试通过在 game1 中编写一个新的类函数来将一个 int 对象传递给 game1 场景

 @synthesize point;

+ (void)setPoint:(int)point_
{
    point = point_;
}

但我收到一个错误,说类函数 setPoint 无法设置实例变量。

那么如何将一个 int 值从 viewcontroller 传递给 game1 场景呢?

4

1 回答 1

0

正如错误所说,您无法从类方法访问实例变量。在类方法中,方法本身没有关于类的哪个特定实例应该设置变量的信息(这根本没有意义)。

您要做的是引用特定场景实例(例如,通过将其分配给属性)然后调用[game1 setPoint:point];

P.s.:您只需要@synthesize point一个手动实现- setPoint:(假设您的属性不是只读的)。

于 2012-08-16T21:14:20.637 回答