2016-10-04 54 views
-1

我有以下代碼。我想知道爲什麼當我在Main類中調用rBloc()時,它不打印var a,而是打印一個空數組。我試圖讓它保密,但仍然不起作用。Swift,函數沒有得到信息

我的代碼是什麼,我在主函數中有setArr()。其中有數字的數組。並在該函數中,setArr()我調用另一個函數Blocks在不同的類Levels中。在塊中,它只是將arr放入var新的。然後在Main類中調用黑色,我打電話給rBloc打印出陣列。

class Main: SKScence{ 
override func didMove(to view: SKView){ 
setArr() 

let y=Levels() 
y.rBloc() 
} 
func setArr(){ 
var a=[1,2,3] 
let n=Levels() 
n.Blocks(arr:a) 
} 
    } 

class Levels: SKScene { 

var new=[Int]() 

func Blocks(arr:[Int]){ 
    new=arr 
    new.append(4) 
} 

func rBloc(){ 
    print(new) 

} 
    } 

回答

0

您正在初始化一個新的級別SKScene對象,這就是爲什麼。你應該改變你的setArr功能,這

func setArr() -> Levels { 

    var a = [1,2,3] 
    let n = Levels() 
    n.Blocks(arr:a) 
    return n 
} 

然後在主類

override func didMove(to view: SKView){ 

    let y = self.setArr() 
    y.rBloc() 
} 
+0

得益於它完美地工作! –

+0

不客氣!給答案一個勾號? – koropok

+0

最新動態?就像我的代碼中的一個錯誤。我雖然給了你一個複選標記。 –