私の場合、次のようなCCLayerを定義しました。
@interface MyLayer : CCLayer {
CCLayer * referenceLayer;
}
+(CCScene *)シーンで使用するためにどのように宣言すればよいですか?
このような ?
@property (nonatomic, retain) CCLayer *referenceLayer;
私の場合、次のようなCCLayerを定義しました。
@interface MyLayer : CCLayer {
CCLayer * referenceLayer;
}
+(CCScene *)シーンで使用するためにどのように宣言すればよいですか?
このような ?
@property (nonatomic, retain) CCLayer *referenceLayer;
はクラスメソッドであるため + (id)scene、その中からivar/propertyにアクセスすることはできません。考えられる解決策の1つは、次のスニペットのように、layer.mファイルに静的変数を含めることです。
static CCScene* _scene = nil;
+ (id)scene {
if (_scene == nil) {
_scene = [[CCScene node] retain];
//-- further scene initializaion
}
return _scene;
}
この単純なアプローチには欠点があります。そのようなレイヤーは1つしか存在できません。