因此,我正在创建一个转换应用程序,并且需要使用 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/