在ViewDidLoad中声明一个变量并在别处使用(Swift)

时间:2014-12-31 19:23:32

标签: swift

第一个Swift项目,我对范围如何运作感到困惑。我正在尝试在ViewDidLoad中选择一个随机整数然后允许用户猜测数字,但我无法弄清楚如何在我的按钮操作中访问ViewDidLoad中创建的变量answer

class ViewController: UIViewController {

    @IBOutlet var guess: UITextField!

    @IBOutlet var result: UILabel!

    @IBAction func guessButton(sender: AnyObject) {

        var userGuess = guess.text.toInt()
        if userGuess != nil {
            if userGuess == answer {
                result.text = "You got it!"
            } else if userGuess > answer {
                result.text = "Too high! Guess again!"
            } else {
                result.text = "Too low!  Guess again!"
            }
        }

    }

    override func viewDidLoad() {
        super.viewDidLoad()
        var answer = arc4random_uniform(100) + 1

        }
   }

1 个答案:

答案 0 :(得分:2)

三个范围:

  • 档案顶级

  • 对象类型声明顶级(如guess

  • 本地(内部函数花括号)(如userGuess

您只能看到 up (更高的周边范围)。

因此,guessButton方法中的代码无法查看viewDidLoad方法中声明的变量。但是他们可以两者看到在文件顶级声明的变量或在对象类型声明顶级声明的变量。您认为哪一个最合适?