gpt4 book ai didi

arrays - Swift - 数组不会保存元素

转载 作者:行者123 更新时间:2023-11-28 13:20:29 25 4
gpt4 key购买 nike

我正在使用函数通过 array.append() 将元素添加到数组。奇怪的是,数组不保存元素,在检查计数时,它会是空的。将相同的代码放入 Playground 时,它会正常工作。

第 1 类(功能是添加一个元素):

class FirstClass {
var array:[(Int, Int, String)] = []

func add(var1:Int, var2:Int, var3:String)
{
array.append((Int, Int, String)(var1, var2, var3))
println(array.count)
}
}

第 2 类(从我调用函数的地方):

class ViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
FirstClass().add(1, 2, "xxx")
FirstClass().add(2, 1, "xxx")
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

我可以看到数组是空的,因为我总是在每次添加后打印计数。

有没有人遇到过类似的事情?

最佳答案

每次向数组添加一个元素时,都会创建一个 FirstClass 的实例,因此前一个元素会丢失。您应该只创建一个 FirstClass 的实例,并在其上调用 add 方法:

var firstClass = FirstClass()
firstClass.add(1, 2, "xxx")
firstClass.add(2, 1, "xxx")

如果你想让firstClass持久化在类实例中,将它声明为一个属性:

class ViewController: UIViewController {
var firstClass = FirstClass()

override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
self.firstClass.add(1, 2, "xxx")
self.firstClass.add(2, 1, "xxx")
}

}

关于arrays - Swift - 数组不会保存元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26357703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com