尝试从另一个方法访问变量时出现“未解决的标识符”错误
问题描述:
使用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") }
}
答
你应该answer
一个类变量,所以这将是可用的viewDidLoad
功能之外。 (该类型的也可以离开了,因为编译器可以从UITextField
初始化,这将是一个UITextField
猜测。)
let answer = UITextField(frame: CGRect(x: 35, y: 150, width: 250, height: 50))
override func viewDidLoad() {
super.viewDidLoad()
[...]
}
在另一方面,在斯威夫特变量名称应该以小写字母开头。类,结构和枚举名称以大写字母开头,这可能会导致未来混淆。
+0
非常感谢! – ctaylorgraphics
属性和方法名称应该以Swift中的小写字母开头。 – Moritz