实例成员不能在类型视图控制器上使用

时间:2015-10-25 21:56:41

标签: ios swift

我看到很多关于堆栈溢出的帖子,但没有一个帮助我。我正在学习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.

1 个答案:

答案 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"
    }
}