Xcode 实例成员不能用于类型
上面是我试图实现的函数,下面是我试图创建实例并将文本字段中的数据存储在中的类。。。我得到的错误实例成员名不能用于Person类型。我几乎可以肯定,我的课程设置和初始化正确,所以我看不出问题出在哪里Xcode 实例成员不能用于类型,xcode,swift,swift2,xcode7,Xcode,Swift,Swift2,Xcode7,上面是我试图实现的函数,下面是我试图创建实例并将文本字段中的数据存储在中的类。。。我得到的错误实例成员名不能用于Person类型。我几乎可以肯定,我的课程设置和初始化正确,所以我看不出问题出在哪里 @IBAction func saveDetails(sender: AnyObject) { Person.firstName = firstNameTF.text Person.lastName = lastNameTF.text } 实例成员名不能用于类型Per
@IBAction func saveDetails(sender: AnyObject) {
Person.firstName = firstNameTF.text
Person.lastName = lastNameTF.text
}
实例成员名不能用于类型Person,这是一个完美的解释
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
}
}
实例成员名不能用于类型Person,这是一个完美的解释
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
}
}
您应该创建Person的实例以设置其属性: 要么这样做:
class C {
var s: String = ""
static var s1: String = ""
}
C.s1 = "alfa"
//C.s = "alfa" // error: instance member 's' cannot be used on type 'C'
let c0 = C()
c0.s = "beta"
//c0.s1 = "beta" // error: static member 's1' cannot be used on instance of type 'C'
或者添加一个不接受Person类参数的init方法
@IBAction func saveDetails(sender: AnyObject) {
let p = Person(firstName: firstNameTF.text!, lastName: lastNameTF.text!)
}
您应该创建Person的实例以设置其属性: 要么这样做:
class C {
var s: String = ""
static var s1: String = ""
}
C.s1 = "alfa"
//C.s = "alfa" // error: instance member 's' cannot be used on type 'C'
let c0 = C()
c0.s = "beta"
//c0.s1 = "beta" // error: static member 's1' cannot be used on instance of type 'C'
或者添加一个不接受Person类参数的init方法
@IBAction func saveDetails(sender: AnyObject) {
let p = Person(firstName: firstNameTF.text!, lastName: lastNameTF.text!)
}
错误消息表示无法调用类类型Person的属性 使用给定的初始值设定项创建Person实例
@IBAction func saveDetails(sender: AnyObject) {
let p = Person()
p.firstName = firstNameTF.text!
p.lastName = lastNameTF.text!
}
错误消息表示无法调用类类型Person的属性 使用给定的初始值设定项创建Person实例
@IBAction func saveDetails(sender: AnyObject) {
let p = Person()
p.firstName = firstNameTF.text!
p.lastName = lastNameTF.text!
}
这给了我另一个错误,不能在没有参数的情况下为“Person”调用初始化器类型这给了我另一个错误,不能在没有参数的情况下为“Person”调用初始化器类型我不想听起来粗鲁,但我认为您不理解类和对象之间的区别,这是OOP的一个非常重要的特性。我建议你买本书,开始阅读OOP的基础知识。我不想听起来粗鲁,但我认为你不理解类和对象之间的区别,这是OOP的一个非常重要的特性。我建议你买本书,开始阅读OOP的基础知识。谢谢,这解决了我的问题谢谢,这解决了我的问题