0

から継承するゲーム内のオブジェクトがありますCCLayer。このレイヤー はMainLayer、ほとんどのアクションが発生し、スプライトが表示されるゲームの主要コンポーネントです。

私が抱えていて、何時間も修正しようとしてきた問題は、 this の割り当てを解除することMainLayerです。このレイヤーには、多くの子と多くのアクションがあります。最も厄介な部分は、割り当てが解除されたときにクラッシュすることもあれば、正常に動作することもあり、状況に違いが見られないことです。

クラッシュする部分は、次のdealloc方法ですCCNode

- (void) dealloc
{
    CCLOGINFO( @"cocos2d: deallocing %@", self);

    [actionManager_ release];
    [scheduler_ release];
    [camera_ release];
    [grid_ release];
    [shaderProgram_ release];
    [userObject_ release];

    // children
    CCNode *child;
    CCARRAY_FOREACH(children_, child)
        child.parent = nil;

    [children_ release];

    [super dealloc];
}

具体的child.parent = nil;にはEXC_BAD_ACCESSエラーで失敗します。

問題が何であるかについてのアイデアはありますか?

4

1 に答える 1