0

GameManager シングルトン init で多数のシーンを構築しようとしています。

シーンは次の方法で作成されます

   - (id)init
    {
        self = [super init];
        if (self) {        // 'mainScene' is an autorelease object.
        mainScene = [CCScene node];  
...  
    }

GameManger は mainScene を強く参照しています。

@interface GameManager : NSObject
{
    CCScene* mainScene;
}

しかし、後でシーンをプッシュしようとすると

[[CCDirector sharedDirector] pushScene:mainScene]; 

EXC_BAD_ACCESS を取得します

作成してすぐにプッシュすると、すべてが機能します。デフォルトの __strong 参照は、割り当てられたオブジェクトを保持するべきではありませんか?

助けてくれてありがとう....

4

1 に答える 1

0

それを考え出した... [CCScene node] は、次のことを行う便利なファクトリメソッドです: [[[self alloc] init] autorelease];

しかし、私はarcを使用しているので...私はそれを望んでいません-私はしたいです

mainScene = [[CCScene alloc]init];

それ以外の

mainScene = [CCScene node];
于 2012-06-14T21:31:52.893 に答える