Ios Can';t将节点添加到我的场景(精灵工具包)

Ios Can';t将节点添加到我的场景(精灵工具包),ios,objective-c,sprite-kit,Ios,Objective C,Sprite Kit,我正在使用spritekit创建一个游戏 用户控制一个在屏幕上上下击打一个球的球拍,每次球碰到球拍时,计分计数器递增一。我想做的是,当用户的分数等于5时,在游戏中添加第二个球,但无论出于何种原因,当我尝试将第二个球添加到场景中时,它不会被添加 -(void)didBeginContact:(SKPhysicsContact *)contact { SKPhysicsBody *firstBody, *secondBody if (contact.bodyA.categoryBitMask

我正在使用spritekit创建一个游戏

用户控制一个在屏幕上上下击打一个球的球拍,每次球碰到球拍时,计分计数器递增一。我想做的是,当用户的分数等于5时,在游戏中添加第二个球,但无论出于何种原因,当我尝试将第二个球添加到场景中时,它不会被添加

-(void)didBeginContact:(SKPhysicsContact *)contact
 {

SKPhysicsBody *firstBody, *secondBody


if (contact.bodyA.categoryBitMask < contact.bodyB.categoryBitMask) {
    firstBody = contact.bodyA;
    secondBody = contact.bodyB;
}
else {
    firstBody = contact.bodyB;
    secondBody = contact.bodyA;
}

// if a body in the scene makes contact with the paddle
// shoot the ball back up
if ((firstBody.categoryBitMask & ballCategory) != 0 && (secondBody.categoryBitMask & paddleCategory) != 0) {
    // move ball up
    [firstBody applyImpulse:CGVectorMake(arc4random() % 60 + 20, arc4random() % 80 + 50)];

    // increment score
    self.score++;

    // update score
    self.deathLabel.text = [NSString stringWithFormat:@"%i", self.score];

    // if the game score is 5, add another ball to the scene
    if (self.score == 5) {
        NSLog(@"test");
        [self addChild:ball2];
        }
    }
}
-(void)didBeginContact:(skphysiccontact*)联系人
{
SKPhysicsBody*第一个Body,*第二个Body
if(contact.bodyA.categoryBitMask

ball2”在尝试将其添加到场景之前已预先初始化。当运行游戏并获得5分时,会调用
NSLog
消息,但场景不会添加另一个球。为什么呢?我完全错过了什么吗?感谢您的帮助。

例如,尝试使用action perform selector调用

-(void)secondBall
{
    SKSpriteNode *secondBall = [SKSpriteNode spriteNodeWithImageNamed:@"secondBall"];
    secondBall.position = yourPosition;
    [self addChild:secondBall];
}

//Your contact
if (self.score == 5) {
        [self runAction:[SKAction performSelector:@selector(secondBall) onTarget:self]];
    }