1

AppDelegate が IntroMenu オブジェクトを作成する C++ プロジェクト (Cocos2d-x を使用しますが、実際には問題ではありません) を開始しています。AppDelegate を IntroMenu クラスのインスタンス変数として定義したいのですが、うまくいきません...

これが私の IntroMenu の定義方法です。

IntroMenu.h

class  IntroMenu : public cocos2d::CCLayerColor
{
public:
    AppDelegate* _app;
    //etc...
}

IntroMenu.m

CCScene* IntroMenu::scene()
{
    CCScene *scene = CCScene::node();
    IntroMenu *layer = IntroMenu::node();
    scene->addChild(layer);
    return scene;
}

AppDelegate から IntroMenu をインスタンス化するときは、AppDelegate で次のように処理します。

introScene = IntroMenu::scene();
((IntroMenu*)introScene)->_app = this;

_appIntroMenu のパブリック変数 (AppDelegate 型) です。

問題は、_app後で AppDelegate の他のメソッドで使用するときに null ポインターであることです。

IntroMenu とその変数を適切にインスタンス化する方法は_app?

ありがとう !!

4

2 に答える 2

2

正解は次のとおりだと思います。

AppDelegate *aD = ((AppDelegate*)CCApplication::sharedApplication());
aD->myAppDelegateMethod();
于 2014-02-14T09:00:04.913 に答える
1
[[UIApplication sharedApplication] delegate]

このようにして、アプリデリゲートクラスにアクセスできます:)

于 2012-03-02T05:37:28.557 に答える