繁体   English   中英

快速访问在覆盖函数func中创建的变量viewDidLoad(){super.viewDidLoad()function

[英]accessing variables created in the override func viewDidLoad() { super.viewDidLoad() function outside that function in swift

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.
    }

}

dataPass中是否有任何数据? 如果您未将任何String分配给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尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM