Swift MacOS 更改整个应用程序的阵列值

问题描述 投票:0回答:1

我是swift的新手,但不知道是否有人能告知我下面的代码有什么问题。

我打算做的是让类上面声明的原始数组,在点击改变数组按钮后,改变为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.
        }
    }
}
arrays swift macos
1个回答
1
投票

你已经在全局级别声明了你的变量,但你也是在 func arraychange(_ sender) 函数,使用 let 又是一个新的变量。换句话说,你正在创建一个新的变量,也就是所谓的 shuffledNumbers 一旦函数结束就会消失。

你可能想做以下事情。

  1. 不声明 shuffleNumbers 作为一个全局变量。在你的类中声明它
  2. arracychange(_ sender:) 职能。更新shuffleNumbers 数组中删除 let.

你一定要去掉行末的分号。他们可能是有效的,但他们不是Swifty。

© www.soinside.com 2019 - 2024. All rights reserved.