2017-08-29 45 views
-2

使用Swift 3語法爲iOS開發單視圖應用程序以允許UIButton調用名爲CheckAnswer()的函數,該函數認爲字符串值在UITextField等於一個特定的值。嘗試從另一個方法訪問變量時出現「未解決的標識符」錯誤

當我的CheckAnswer()函數開始執行條件來爲我的UITextField變量(稱爲Answer)辯論字符串值時,我總是收到一個錯誤(無法解析的標識符)。我不知道如何調試這個錯誤。 :)感謝您的任何建議!

override func viewDidLoad() { 
    super.viewDidLoad() 

    //INPUT BOX - User Input! 
    let Answer : UITextField = UITextField(frame: CGRect(x: 35, y: 150, width: 250, height:50)) 
    Answer.placeholder = "Enter Your Answer" 
    Answer.font = UIFont.init(name:"times", size: 24) 
    Answer.backgroundColor = UIColor(red:0xff ,green:0xff, blue:0x88 ,alpha:1) 
    self.view.addSubview(Answer) 

    //BUTTON - Check Answer! 
    let Button : UIButton = UIButton(frame: CGRect(x: 35, y: 200, width: 250, height:50)) 
    Button.setTitle("Submit Answer", for: .normal) 
    Button.titleLabel!.font = UIFont.init(name:"times", size: 24) 
    Button.backgroundColor = UIColor(red:0x00 ,green:0x00, blue:0x00 ,alpha:1) 
    Button.addTarget(self, action: #selector(CheckAnswer), for: .touchUpInside) 
    self.view.addSubview(Button) 
} 

func CheckAnswer(_ sender: UIButton){ 
    if Answer.text == "answer" || Answer.text == "Answer"  
    { print("Correct ! Response") } 
    else { print("Incorrect x Response") } 
    } 
+3

屬性和方法名稱應該以Swift中的小寫字母開頭。 – Moritz

回答

2

你應該answer一個類變量,所以這將是可用的viewDidLoad功能之外。 (該類型的也可以離開了,因爲編譯器可以從UITextField初始化,這將是一個UITextField猜測。)

let answer = UITextField(frame: CGRect(x: 35, y: 150, width: 250, height: 50)) 

override func viewDidLoad() { 
    super.viewDidLoad() 

    [...] 
} 

在另一方面,在斯威夫特變量名稱應該以小寫字母開頭。類,結構和枚舉名稱以大寫字母開頭,這可能會導致未來混淆。

+0

非常感謝! – ctaylorgraphics

相關問題