Cocos2D CClayer删除访问不良

时间:2011-08-03 08:12:26

标签: objective-c memory-management cocos2d-iphone

我需要在更新功能中释放我的图层。我叫函数finishGame。

-(void)finishGame{
    [[CCDirector sharedDirector] pause];
    [layerRoot removeFromParentAndCleanup:YES];
    [layerRoot autorelease];
    layerRoot=nil;
}

但后来我收到了错误的访问通知

// updates with priority == 0
    DL_FOREACH_SAFE( updates0, entry, tmp ) {
        if( ! entry->paused )
            entry->impMethod( entry->target, updateSelector, dt ); //<<< In this string.
    }

或返回0; 0_o这很奇怪。因为程序无法完成。

我错了什么?

非常感谢。

1 个答案:

答案 0 :(得分:0)

[obj removeFromParentAndCleanup:YES]释放有问题的对象。除非指定NO,否则在调用该方法后,不应该在对象上调用任何内容。但是,您仍然可以将其设置为nil,这只是一个很好的Objective-C编码实践。

另外:如果你正确地对CCNode进行了子类化,他们无论如何都要自动发布。