从数组中添加子项

时间:2014-10-11 07:45:11

标签: arrays swift sprite-kit parent-child

我已经尝试过几天学习swift,而且我发现的所有教程都有SKNodes的指定数量。我试图以编程方式将新实例添加到数组nodeList并将它们添加到场景中,因为我希望每个实例都定期执行一些代码。这是我当前用于添加更多对象的代码版本:

if (last_created < 0)  {

    //Some other code here

    for i in 0...3 {
        self.nodeList.append(self.backObject);

        var x_current = CGFloat(Float(arc4random())/4294967296.0 * Float(x_range) + Float(x_min));
        var y_current = CGFloat(Float(y_min) - Float(y_range));

        self.nodeList[self.nodeList.count-1].position = CGPoint(x: x_current, y: y_current);
        self.addChild(self.nodeList[self.nodeList.count-1]);
    }
}

尝试执行此操作会引发异常:

Attemped to add a SKNode which already has a parent

我假设我的nodeList数组中的每个项都被视为同一个对象,而不是单独的实例。但是,我不知道如何解决问题。我该怎么办呢?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您正在多次将self.backObject添加到数组中,因此它会多次添加到场景中,从而导致错误。您应该在循环中创建节点的新实例并将其添加到数组中。