ccscene arc和autorelease

时间:2012-06-14 21:05:15

标签: cocos2d-iphone

我正在尝试在我的GameManager单例初始化中构建一些场景。

通过

创建场景
   - (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引用来保持对象的分配吗?

提前感谢您的帮助......

1 个答案:

答案 0 :(得分:0)

想出来...... [CCScene节点]是一种便利工厂方法: [[[self alloc] init] autorelease];

但是因为我正在使用弧......我不想要那个 - 我想要

mainScene = [[CCScene alloc]init];

而不是

mainScene = [CCScene node];