Swift,功能无法获取信息

时间:2016-10-04 01:00:52

标签: swift swift3

我有以下代码。我想知道为什么当我在Main类中调用rBloc()时它不打印var a,但是它打印一个空数组。我尝试将其设为私有,但仍然无效。

我的代码是什么,我在main函数中有setArr()。它有一组数字。在该函数中,setArr()我在另一个类Levels中调用另一个函数Blocks。在块中,它只是将arr放入var new中。然后在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)

}
    }

1 个答案:

答案 0 :(得分:0)

你正在初始化一个新的Levels 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()
}