我一直在尝试使用 Swift 在 Xcode 7 中制作一个应用程序,我正在尝试使用这段代码将文本字段中的数字转换为整数,let a = Int(percentLabel.text!)
但每次尝试此操作时,我都会收到一条错误消息,提示 Instance Member 'percentLabel' cannot be used on type 'ViewController'
我不确定为什么会收到此错误,也许这是我在 Xcode 7 中发现的错误。
这是我的完整代码。
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) {
}
}
最佳答案
你不能在类中的函数调用之外有这两行
let myString = percentLabel
let myInt: Int? = Int(myString)
您不能将一个属性初始化为另一个属性的值,您不能将一个变量的默认值设置为另一个属性的默认值。您通常会在像 viewDidLoad 或 viewWillAppear 这样的函数中执行此操作。 Arsen 的回答也应该有效,因为它会尝试懒惰地获取值,或者按照您的要求获取值。
let myString = percentLabel
也不会返回文本,您需要执行 let myString = percentLabel.text
但您不能像属性一样分配此值。你需要把他的代码放在函数体中
关于ios - 使用 Swift 时出错 - 实例成员不能用于类型 'ViewController',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33055147/