2013年2月4日月曜日

[CCDirector sharedDirector].runningScene で取得したシーンの変数にアクセスするにはCCSceneを継承していないとダメらしい

しっかりと調べた訳ではないのですが、気になったのでメモります。

例えば

以下ようにシーンを取得し、あるクラスの変数にアクセスする場合、そのアクセスするクラスはCCSceneクラスを継承していないとエラーが出てしまいます。
GameScene *gameScene = (GameScene*)[CCDirector sharedDirector].runningScene;
CCLOG(@"%@", gameScene.array1);
そして、そのあるクラスは以下のような感じ。
@interface GameScene : CCScene {  // CCSceneクラス継承しとります
    NSArray *_array1;
}

@property(nonatomic, retain)NSArray *array1;

@end

はじめ、そのあるクラスはCCLayerクラスを継承して作成し、sceneというクラスメソッドを作成、その中でCCSceneの定義をしていたのですが、エラーが出てしまいました。CCLayerの中でCCSceneを定義するのが普通だと思っていたのですが勉強不足だったのでしょうか。

最初に述べたように細かくは調べていないので間違いがありましたらコメントをいただけると幸いです。

0 件のコメント:

コメントを投稿