我已经定义了这样的CCLayer:
@interface MyLayer : CCLayer {
CCLayer * referenceLayer;
}
如何声明它在+(CCScene *)场景中使用它?
喜欢这个吗?
@property (nonatomic, retain) CCLayer *referenceLayer;
答案 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;
}
这种简单的方法有一个缺点:你只能有一个这样的层。