我看到很多关于堆栈溢出的帖子,但没有一个帮助我。我正在学习udemy课程,我的老师没有问题
var age = Int(catAge.text);
但由于某种原因,我收到错误说
实例成员' catAge'不能在类型视图控制器上使用
这是我的全视图控制器:
import UIKit
class ViewController: UIViewController {
@IBOutlet var catAge: UITextField!
@IBOutlet var result: UILabel!
var age = Int(catAge.text)
@IBAction func submit(sender: AnyObject) {
result.text = age * 7
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didRecieveMemoryWarning() {
super.didRecieveMemoryWarning()
// Dispose of any resources that can be recreated.
}
我也收到错误消息称我无法乘以Int? and Int.
答案 0 :(得分:2)
行var age = Int(catAge.text)
在您编写它的上下文中无效 - 作为实例变量。你可以在方法的范围内写出那一行,但它在给定的点上没有任何意义 - 应该发生什么?第一个catAge是nil,其次如果不是文本肯定是空的,因为没有用户有任何机会输入任何东西。
年龄属于Int?
类型,因为不确定您是否可以将文本转换为int。要将你需要打开的age
相乘,或者更好地检查它是否可以转换为int:
@IBAction func submit(sender: AnyObject) {
if let age = Int(catAge.text) {
result.text = age * 7
} else {
result.text = "please input an integer"
}
}