[英]Swift MacOS Change Array value for whole app
我是 swift 的新手,但想知道是否有人可以建议我在下面的代码中做错了什么。
我打算做的是使在 class 上方声明的原始数组,一旦单击更改数组按钮,更改为 4 3 2 1。 如果我单击按钮,这可以正常工作,并且控制台会按预期输出 4321。 但是,一旦我单击打印数组按钮,它就会显示我首先声明的原始数组 1-2-3-4。 如何用我在更改数组按钮上创建的新数组覆盖原始数组?
谢谢
import Cocoa
let shuffledNumbers = [0, 1, 2, 3]; // declare array
class ViewController: NSViewController {
// change array button
@IBAction func arraychange(_ sender: Any) {
let shuffledNumbers = [4, 3, 2, 1];
print(shuffledNumbers);
}
// print array to console
@IBAction func button(_ sender: Any) {
print(shuffledNumbers);
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
}
您已经在全局级别声明了您的变量,但您也通过再次使用let
在func arraychange(_ sender)
function 中声明它。 换句话说,您正在创建一个也称为shuffledNumbers
的新变量,该变量会在 function 结束后立即消失。
您可能想要执行以下操作:
shuffleNumbers
声明为全局变量。 在您的 class 中声明它arracychange(_ sender:)
function 中,通过删除let
来更新shuffleNumbers
数组。您肯定想删除行尾的分号。 它们可能是有效的,但它们不是 Swifty。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.