import UIKit
class SecondViewController: UIViewController {
@IBOutlet weak var labelA: UILabel!
@IBOutlet weak var labelB: UILabel!
var dataPassed:String!
var secondDataPassed:String!
var newVar: String!
var newVar2: String!
override func viewDidLoad() {
super.viewDidLoad()
labelA.text = dataPassed
labelB.text = secondDataPassed
newVar = labelA.text
println(newVar)
}
println(newVar) *** I can't access newVar outside override func viewDidLoad() { - Gives "expected declaration" Its driving me crazy!!!***
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
最佳答案
dataPassed中有数据吗?如果您没有将任何字符串分配给 dataPassed 变量,然后将 newVar 分配给 dataPassed,则 newVar 将没有任何内容可打印。
尝试:
import UIKit
class SecondViewController: UIViewController {
@IBOutlet weak var labelA: UILabel!
@IBOutlet weak var labelB: UILabel!
var dataPassed:String! = "Test."
var secondDataPassed:String!
var newVar: String!
var newVar2: String!
override func viewDidLoad() {
super.viewDidLoad()
labelA.text = dataPassed
labelB.text = secondDataPassed
newVar = labelA.text
println(newVar)
}
其次,您似乎正在尝试在函数之外再次 println
。这是行不通的,因为 viewDidLoad 本质上是应用程序的“主要方法”。您可以创建其他函数来响应按钮触摸等...并在那里运行 println,但由于 Swift 代码是按功能执行的,因此您正在执行的代码必须位于特定函数内部。虽然您可以声明变量,但您无法执行诸如在函数外部打印它们之类的操作,因为这样就没有疯狂的顺序/方法。
唯一可以在没有函数的情况下独立运行 Swift 代码的地方是 Swift Playground。在 XCode 中,您可以选择 File -> New -> Playground 来尝试一下。
关于ios - 访问 swift 中该函数外部的 override func viewDidLoad() { super.viewDidLoad() 函数中创建的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30826531/