实例成员不能用于类型 [英] Instance member cannot be use on type

查看:42
本文介绍了实例成员不能用于类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

@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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆