Cocos2d iphone EXC_销毁尸体时无法进入

Cocos2d iphone EXC_销毁尸体时无法进入,cocos2d-iphone,box2d,physics,box2d-iphone,Cocos2d Iphone,Box2d,Physics,Box2d Iphone,我在Sprite类中创建了一个方法,该方法更新CCPhysicsSprite主体的位置,直到它到达某个位置。代码如下: -(void)updatePhyscisSprite { if (phySpr.b2Body->GetPosition().y < 200.0/PTM_RATIO) { b2Vec2 force = b2Vec2(0.0, 12.0*phySpr.b2Body->GetMass()); phySpr.b2Body->ApplyF

我在Sprite类中创建了一个方法,该方法更新CCPhysicsSprite主体的位置,直到它到达某个位置。代码如下:

-(void)updatePhyscisSprite    {

if (phySpr.b2Body->GetPosition().y < 200.0/PTM_RATIO) {

    b2Vec2 force = b2Vec2(0.0, 12.0*phySpr.b2Body->GetMass());
    phySpr.b2Body->ApplyForce(force, phySpr.b2Body->GetWorldCenter());
    }
if (phySpr.b2Body->GetPosition().y > 200.0/PTM_RATIO) {
    bWorld->DestroyBody(phySpr.b2Body);
    phySpr.b2Body = NULL;
    [bLayer removeChild:phySpr];

}
}
我有一种感觉,当主体为NULL时检查NULL会产生问题,因为该方法每1/60秒调用一次。我真的不知道如何着手解决这个问题。

尝试这样做:

在physcisprite.mm中

- (void)dealloc
{
    bWorld->DestroyBody(b2Body);
    b2Body = NULL;

    [super dealloc];
}
在函数中键入

[bLayer removeChild:phySpr cleanup:YES];

phySpr导致崩溃,如果(phySpr.b2Body!=NULL)@learncos2d:正在工作,请在移除
的Childgive上下文后尝试将phySpr置零。谢谢。我已经做了好几个小时了。
[bLayer removeChild:phySpr cleanup:YES];