[英]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.