swift - 不同 IBAction 中未解析的标识符(变量)

标签 swift macos

因此,我正在创建一个转换应用程序,并且需要使用 2 个 IBAction。 在其中一个中,我设置了一个常量,并尝试在下一个中使用它。 但这不起作用。我如何共享常量?

我正在运行 Xcode 11。我尝试将其转换为变量,但没有成功。

@IBAction func select(_ sender: Any) {
    let foo = "/some/cool/path.txt"
}

@IBAction func convert(_ sender: Any) {
    let contents = try NSString(contentsOfFile: foo, encoding: NSUTF8StringEncoding) // And here comes the error
}

我想在其他 IBAction 中使用 foo 常量,但我得到了未解析的标识符“foo”

最佳答案

规则:所有变量仅在声明它们的大括号内可见。

将变量声明为高一级,并且不要在 Swift 中使用 NSString

var foo = ""

@IBAction func select(_ sender: Any) {
    foo = "/some/cool/path.txt"
}

@IBAction func convert(_ sender: Any) {
    do {
        let contents = try String(contentsOfFile: foo, encoding: .utf8)
    } catch { print(error) } 
}

关于swift - 不同 IBAction 中未解析的标识符(变量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56913610/

相关文章:

swift - 如何在 Swift 3 中创建具有 QoS 属性的 dispatch_queue?

macos - Xamarin.Mac 应用程序在 Dock 中不可见

php - 我如何为 Mac OS X Yosemite 10.10 安装 libmemcached 以便在 Mamp 3 上安装 memcached.so PHP 扩展?

ios - 修复github项目SwiftChart中的错误

ios - 快速从另一个 ViewController 调用函数

ios - XCode 8 无法编译适用于 Xcode 9 的 Swift 3 代码

c++ - 是否可以在 Mac OSX 10.6 中静态链接 libstdc++?

macos - OS X - 如何使用 segue 仅创建一个窗口并保留数据?

xcode - 如何在 Mac 框架中调用 cpuid 指令?

swift - 在 Swift 3 中获取当前日期?