实例成员不能用于类型 [英] Instance member cannot be use on type
本文介绍了实例成员不能用于类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
@IBAction func saveDetails(sender: AnyObject) {Person.firstName = firstNameTF.textPerson.lastName = lastNameTF.text}
上面是我试图实现的函数,下面是我试图创建一个实例并将我的文本字段中的数据存储在...我收到错误实例成员firstName"不能是用于类型 Person".我几乎肯定我的类设置和初始化正确,所以我看不出问题是什么?
class Person {var firstName : String = ""var middleName : 字符串?= 零var lastName : String = ""var yearOfBirth : Int?= 零变量年龄:整数!{得到 {守卫让_ = yearOfBirth else {返回零}返回 currentYear - yearOfBirth!}放 {yearOfBirth = currentYear - newValue}}init(firstName: String, lastName: String, yearOfBirth: Int? = nil, middleName: String? = nil){self.firstName = 名字self.lastName = 姓氏self.yearOfBirth = yearOfBirthself.middleName = 中间名}便利 init(firstName: String, lastName: String, age: Int, middleName: String? = nil) {self.init(firstName: firstName, lastName: lastName, yearOfBirth: nil, middleName: middleName)self.age = 年龄}}
解决方案
错误消息说您无法调用 class(类型)Person
上的属性.>
使用给定的初始化程序创建一个 Person
实例
@IBAction func saveDetails(sender: AnyObject) {let person = Person(firstName:firstNameTF.text, lastName:lastNameTF.text)//对人做某事}
@IBAction func saveDetails(sender: AnyObject) {
Person.firstName = firstNameTF.text
Person.lastName = lastNameTF.text
}
Above is the function I am trying to implement and below is the class I am trying to create an instance of and store the data from my text fields in... I am getting the error "Instance member "firstName" cannot be used on type Person". I was almost positive that my class was setup and initialised properly so I can't see what the problem could be?
class Person {
var firstName : String = ""
var middleName : String? = nil
var lastName : String = ""
var yearOfBirth : Int? = nil
var age : Int! {
get {
guard let _ = yearOfBirth else {
return nil
}
return currentYear - yearOfBirth!
}
set {
yearOfBirth = currentYear - newValue
}
}
init(firstName: String, lastName: String, yearOfBirth: Int? = nil, middleName: String? = nil){
self.firstName = firstName
self.lastName = lastName
self.yearOfBirth = yearOfBirth
self.middleName = middleName
}
convenience init(firstName: String, lastName: String, age: Int, middleName: String? = nil) {
self.init(firstName: firstName, lastName: lastName, yearOfBirth: nil, middleName: middleName)
self.age = age
}
}
解决方案
The error message says you cannot call the properties on the class (type) Person
.
Create a Person
instance using the given initializer
@IBAction func saveDetails(sender: AnyObject) {
let person = Person(firstName:firstNameTF.text, lastName:lastNameTF.text)
// do something with person
}
这篇关于实例成员不能用于类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文