繁体   English   中英

Swift MacOS 更改整个应用程序的数组值

[英]Swift MacOS Change Array value for whole app

我是 swift 的新手,但想知道是否有人可以建议我在下面的代码中做错了什么。

我打算做的是使在 class 上方声明的原始数组,一旦单击更改数组按钮,更改为 4 3 2 1。 如果我单击按钮,这可以正常工作,并且控制台会按预期输出 4321。 但是,一旦我单击打印数组按钮,它就会显示我首先声明的原始数组 1-2-3-4。 如何用我在更改数组按钮上创建的新数组覆盖原始数组?

  • 所以预期的行为按打印数组见 1 2 3 4
  • 按更改阵列按钮
  • 现在打印数组应该显示 4 3 2 1 而不是 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.
        }
    }
}

您已经在全局级别声明了您的变量,但您也通过再次使用letfunc arraychange(_ sender) function 中声明它。 换句话说,您正在创建一个也称为shuffledNumbers的新变量,该变量会在 function 结束后立即消失。

您可能想要执行以下操作:

  1. shuffleNumbers声明为全局变量。 在您的 class 中声明它
  2. arracychange(_ sender:) function 中,通过删除let更新shuffleNumbers数组。

您肯定想删除行尾的分号。 它们可能是有效的,但它们不是 Swifty。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM