2014-10-11 49 views
0

我一直在努力學習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

您正在將self.backObject多次添加到數組中,所以它會多次添加到場景中,導致出錯。您應該在循環內創建節點的新實例並將其添加到數組中。