在.h文件中定义一个cclayer

时间:2012-02-02 17:46:27

标签: objective-c cocos2d-iphone cclayer

我已经定义了这样的CCLayer:

@interface MyLayer : CCLayer {
    CCLayer * referenceLayer; 
}

如何声明它在+(CCScene *)场景中使用它?

喜欢这个吗?

@property (nonatomic, retain) CCLayer *referenceLayer;

1 个答案:

答案 0 :(得分:0)

由于+ (id)scene是一种类方法,因此无法从中访问ivar / property。一种可能的解决方案是在layer.m文件中包含一个静态变量,如下面的代码片段所示:

static CCScene* _scene = nil;

+ (id)scene {
   if (_scene == nil) {
      _scene = [[CCScene node] retain];
      //-- further scene initializaion
   }
   return _scene;
 }

这种简单的方法有一个缺点:你只能有一个这样的层。