实例成员不能用于类型视图控制器
Posted
技术标签:
【中文标题】实例成员不能用于类型视图控制器【英文标题】:instance member cannot be used on type view controller 【发布时间】:2015-10-25 21:56:40 【问题描述】:我看过很多关于堆栈溢出的帖子,但没有一个对我有帮助。我正在上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】: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"
【讨论】:
以上是关于实例成员不能用于类型视图控制器的主要内容,如果未能解决你的问题,请参考以下文章
实例成员不能用于 struct swift 之间的嵌套类型的实例