我有以下代码。我想知道为什么当我在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)
}
}
答案 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()
}