0

私の場合、次のようなCCLayerを定義しました。

@interface MyLayer : CCLayer {
    CCLayer * referenceLayer; 
}

+(CCScene *)シーンで使用するためにどのように宣言すればよいですか?

このような ?

@property (nonatomic, retain) CCLayer *referenceLayer;
4

1 に答える 1

1

はクラスメソッドであるため + (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つしか存在できません。

于 2012-02-02T17:54:26.440 に答える