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

Arrays Swift MacOS更改整个应用程序的数组值,arrays,swift,macos,Arrays,Swift,Macos,我是swift新手,但想知道是否有人能告诉我下面的代码有什么问题 我打算做的是在类上方声明原始数组,单击ChangeArray按钮后将其更改为4321。如果我单击该按钮,控制台将按预期输出4321。但是,单击“打印数组”按钮后,它会显示我首先声明的原始数组1-2-3-4。如何用我在“更改数组”按钮上创建的新数组覆盖原始数组 因此,请按打印阵列查看1 2 3 4 按更改阵列按钮 现在,打印数组应该显示4 3 2 1,而不是它显示的1 2 3 4 谢谢 import Cocoa let shu

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

我打算做的是在类上方声明原始数组,单击ChangeArray按钮后将其更改为4321。如果我单击该按钮,控制台将按预期输出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.
        }
    }
}

您已经在全局级别声明了变量,但您也再次使用
let
func-arraychange(\usender)
函数中声明了变量。换句话说,您正在创建一个新变量,也称为
shuffledNumbers
,该变量在函数结束时立即消失

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

  • 不将
    shuffleNumbers
    声明为全局变量。在你的课堂上声明它
  • arracychange(uu.sender:)
    函数中,通过删除
    let
    来更新
    shuffleNumbers
    数组

  • 你肯定想去掉你的台词末尾的分号。它们可能有效,但不快速。

    非常感谢我自己注意到了这个问题,非常感谢您的帮助,先生!不客气。我自己也做过同样的事。请随意标记我的答案为正确:-)