错误使用Swift – 实例成员不能用于types'ViewController'

我一直在尝试使用Swift在Xcode 7中创build一个应用程序,我试图使用这个代码将文本字段内的数字转换为整数, let a = Int(percentLabel.text!)

但每次我尝试这个,我得到一个错误,说Instance Member 'percentLabel' cannot be used on type 'ViewController'

我不知道为什么我得到这个错误,也许这是我已经在Xcode 7中find的错误。

这是我的完整代码。

 import UIKit class ViewController: UIViewController { @IBOutlet var tipSlider: UISlider! @IBOutlet var splitSlider: UISlider! @IBOutlet var billAmount: UITextField! @IBOutlet var totalLabel: UILabel! @IBOutlet var tipTotal: UILabel! @IBOutlet var totalPerPerson: UILabel! @IBOutlet var percentLabel: UILabel! @IBOutlet var splitLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } let a = Int(percentLabel.text!) @IBAction func tipChanged(sender: AnyObject) { let currentValue = Int(tipSlider.value) percentLabel.text = "\(currentValue)" } @IBAction func splitChanged(sender: AnyObject) { let currentValue = Int(splitSlider.value) splitLabel.text = "\(currentValue)" } @IBAction func amountChanged(sender: AnyObject) { } } 

这个代码每次调用时都会返回一个新的值。 我期待你在找什么

 var myInt: Int? { return Int(percentLabel.text!) } 

代替

 let myString = percentLabel let myInt: Int? = Int(myString) 

你不能在一个类的函数调用之外有这两行

 let myString = percentLabel let myInt: Int? = Int(myString) 

你不能将一个属性初始化为另一个属性的值,你不能将一个variables的默认值设置为另一个属性的值。 你通常会这样做,像viewDidLoad或viewWillAppear函数。 阿森斯的答案也应该起作用,因为它会试图获得价值的懒惰,或者如你所要求的那样。

let myString = percentLabel也不会返回文本,你需要let myString = percentLabel.text但你不能像一个属性分配这个值。 你需要把他的代码放在函数的主体中