簡體   English   中英

如何在函數中初始化全局變量以在Swift中進一步使用?

[英]How can I initialise a global variable in a function for further use in Swift?

先謝謝您的幫助。 我只是快速入門,我正在使用Xcode嘗試構建一個相當簡單的應用程序。

class ViewController: UIViewController {


    @IBOutlet var text: UITextField!
    @IBOutlet var Lable: UILabel!
    @IBOutlet var Button: UIButton!

    @IBOutlet var message1: UITextField!
    @IBOutlet var Button2: UIButton!

    var name = 0

    @IBAction func Button(sender: UIButton) {
         var name = text.text.toInt()
    }


    @IBAction func Button2(sender: UIButton) {

        var code = Array (message1.text).map{String($0).toInt()! }



        for var n = 0 ; n < code.count; n++
        {
            code[n] = code[n] + name
        }

        var StringArray = (code : String())

        if name != 0
        {
        message1.text = "name variable is inisialised"
        }

        else
        {
            message1.text = "Error name is not initialised"
        }

    }

當我嘗試此方法時,我總是會得到一個相同的答案,即名稱未初始化,因為它的末尾仍然具有全局inisialization名稱= 0,但進一步向下,我將其初始化為文本字段中的int值,但它不會更新全局變量。 如果您可以給我一些代碼來將名稱初始化為全局變量,然后在其他函數中使用它,那就太好了。 感謝您的時間!

一個問題(不是唯一的問題,您稍后會發現)是:

var name = 0

@IBAction func Button(sender: UIButton) {
     var name = text.text.toInt() // this is a DIFFERENT "name"
}

您在第二個變量中說了var ,這使該name成為另一個 name -函數內部的局部變量。 您聲明了一個不同的變量,而不是使用全局變量。 用稍微更專業的術語來說,您已經重新聲明了此變量,從而使全局變量黯然失色。

將您的Button()函數更改為:

@IBAction func Button(sender: UIButton) {
  // Handle the case where toInt() fails, by returning nil/.None
  // For example, shown below, set name to `0`
  name = text.text.toInt() ?? 0
}

同樣, name是在分配編號時使用的特別糟糕的名稱。 也許name_index更好?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM