Cocos2d iphone CCARC和自动释放

Cocos2d iphone CCARC和自动释放,cocos2d-iphone,Cocos2d Iphone,我正试图在GameManager singleton init中构建一些场景 场景是通过以下方式创建的: - (id)init { self = [super init]; if (self) { // 'mainScene' is an autorelease object. mainScene = [CCScene node]; ... } GameManager强烈引用了mainScene: @i

我正试图在GameManager singleton init中构建一些场景

场景是通过以下方式创建的:

   - (id)init
    {
        self = [super init];
        if (self) {        // 'mainScene' is an autorelease object.
        mainScene = [CCScene node];  
...  
    }
GameManager强烈引用了mainScene:

@interface GameManager : NSObject
{
    CCScene* mainScene;
}
但是如果我以后想用

[[CCDirector sharedDirector] pushScene:mainScene]; 
我的EXC\u访问权限不好

如果我创建并立即推送,那么一切都正常。默认的强引用不应该保持对象的分配吗


提前感谢您的帮助

找到了答案。。。[CCScene node]是一种方便的工厂方法,它可以: [[self alloc]init]autorelease]

但是因为我用的是arc…我不想要那个-我想要

mainScene = [[CCScene alloc]init];
而不是

mainScene = [CCScene node];

使用ARC时,两者都没有任何区别。[CCScene node]和[[CCScene alloc]init]将与ARC工作相同(尽管低级技术细节显示了略有不同的内存管理例程)。请确保您没有陷入推送当前正在运行的场景的陷阱,这将崩溃。我肯定没有推送正在运行的场景-并验证了调用[[[CCScene alloc]init]autorelease];崩溃,[[CCScene alloc]init]未。。。。