Swift 无法调用类方法,不可用
几天前我刚开始学习如何编写代码, 所以基本上我创建了一个类车,里面有属性和函数, 我想做的是从textfields中获取数据并应用类函数Swift 无法调用类方法,不可用,swift,Swift,几天前我刚开始学习如何编写代码, 所以基本上我创建了一个类车,里面有属性和函数, 我想做的是从textfields中获取数据并应用类函数 // Class } class Car{ var carModelCountries: Dictionary <String, String> var carYear: Int var carEngine: Double var Carmodel: String init(carModel: Strin
// Class
}
class Car{
var carModelCountries: Dictionary <String, String>
var carYear: Int
var carEngine: Double
var Carmodel: String
init(carModel: String, carYear: Int, carEngine: Double) {
self.carYear = carYear
self.carModelCountries = [ "Kia": "Korean",
"Mercedes": "Germany",
"Chevy": "USA",
"Audi": "Germany",
"Bentley": "Great Britain"]
self.carEngine = carEngine
self.Carmodel = carModel
func getCarCountry(carModel: String) ->String{
for (value, key) in self.carModelCountries {
if key == self.Carmodel{
return value
}
}
return "Origin Unknown"
}
func getCarAge(carYear: Int) -> String{
if self.carYear <= 2016{
return "Car is old"
}
return "Car is Brand New"
}
func getCarFuelConsumption(forEngine: Double) -> String {
if self.carEngine >= 3.0 {
return "Consumes a lot"
}
return "Almost Nothing"
}
}
}
// labels @IBOutlet weak var resultsLabel: UILabel!
@IBOutlet weak var carModelLabel: UITextField!
@IBOutlet weak var carYearLabel: UITextField!
@IBOutlet weak var carEngineLabel: UITextField!
// here I'm trying to initialize the class inside button function and then assign results to result Label
//button pressed
@IBAction func getInfoButton(_ sender: Any) {
var car = Car.init(carModel: carModelLabel.text!, carYear: Int(carYearLabel.text!)!, carEngine: Double(carEngineLabel.text!)!)
resultsLabel.text = car.getCarAge
}
我得到类型为“Car”的错误值没有成员“getCarAge”您已将getCarAge放置在init方法中。使getCarAge和所有其他方法实例方法将它们移出init。。。{...}. 否则,它们仅在init范围内可见。此外,您还可以删除方法的参数,因为您使用的是类的属性
class Car {
...
init(...) {...}
func getCarAge() -> String {
if self.carYear <= 2016 {
return "Car is old"
}
return "Car is Brand New"
}
...
}
或者,您可以将getCarAge属性设置为counted属性
init(...) {...}
var carAge: String {
if carYear <= 2016 {
return "Car is old"
}
return "Car is Brand New"
}
另外,它被称为without,它有一个未被使用的参数。非常感谢@我很高兴我帮助了,考虑接受答案。
init(...) {...}
var carAge: String {
if carYear <= 2016 {
return "Car is old"
}
return "Car is Brand New"
}
resultsLabel.text = car.carAge