【问题标题】:Share variables between functions in Swift在 Swift 中的函数之间共享变量
【发布时间】:2014-08-23 04:50:50
【问题描述】:

我今天开始使用 Swift。
我不知道如何在函数之间共享变量。有人有想法吗?

@IBAction func function1(sender : NSButton) {
    var variable1 = 1
}
@IBAction func function2(sender: NSButton) {
    println(variable1)
}

我在谷歌上搜索过,但找不到解决方案。
我正在使用 Xcode6 beta6。

----已编辑----

我想做的具体事情是下面的代码。

var files: [AnyObject] = [AnyObject]()
@IBAction func selectFiles(sender : NSButton) {
    let openDlg = NSOpenPanel()
    openDlg.allowsMultipleSelection = true
    openDlg.canChooseFiles = true
    openDlg.canChooseDirectories = true
    if openDlg.runModal() == NSOKButton{
        var files = openDlg.URLs
    }
}
@IBAction func startScript(sender: NSButton) {
    for var i = 0; i < files.count; i++ {
        var fileName:AnyObject = files[i];
        println(files[i])
    }
}

事实上,我想打开一个对话框来选择文件,并记录这些文件的路径。
此代码中没有发生错误,但没有打印任何内容。我该怎么做?

【问题讨论】:

  • 你不认为你需要一个“全局”变量来实现你想要实现的目标。
  • 查看答案中的编辑。

标签: macos cocoa variables swift share


【解决方案1】:

你为什么不在外面声明variable1,然后在你的两个函数中使用它,如下所示:

var variable1 = 0 

@IBAction func function1(sender : NSButton) {
    variable1 = 1
}
@IBAction func function2(sender: NSButton) {
    println(variable1)
}

编辑: 根据您发布的新代码,您正在做

var files = openDlg.URLs

在这里,您声明了一个局部变量,而不是使用您的全局变量。 从此处删除 var 并仅保留

files = openDlg.URLs

【讨论】:

  • 谢谢!我可以解决问题并成功记录路径。
猜你喜欢
  • 2020-04-29
  • 1970-01-01
  • 2015-01-09
  • 1970-01-01
  • 2017-03-27
  • 2016-03-25
  • 2017-11-19
  • 1970-01-01
  • 2016-04-29
相关资源
最近更新 更多