我的游戏中有一个继承自CCLayer
的对象。这个层MainLayer
是游戏的主要组成部分,大多数动作都会发生,并且会显示精灵。
我遇到的问题并且已经尝试了几个小时来解决问题,正在解除这个问题MainLayer
。这一层有很多孩子和很多动作。最令人讨厌的部分是,只有在解除分配时才会崩溃,有时候工作正常,我看不出情况有什么不同。
它崩溃的部分是dealloc
的{{1}}方法:
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;
错误而失败。
关于问题可能是什么的任何想法?
答案 0 :(得分:0)
是。你正在释放超类负责的对象。据我所知,整个dealloc方法在这里是多余的。它会过度释放所有内部对象。
PS:如果您不接近发布应用程序,请使用ARC。