如何从我的班级创建可选值

时间:2016-05-20 15:01:30

标签: swift class optional

我创建了一个类User,我想创建一个可选的,编译器然后触发错误

class User {
    var firstName: String = ""
    var lastName: String = ""
}

var Tom = User?(firstName: "Tom", lastName: "Soya")

错误: cannot invoke initializer for type 'User?' with an argument list of type '(firstName: String, lastName: String)'

问题:它出了什么问题?在创建可选值之前,是否需要在类中添加更多内容?如果是这样的话是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

问题是您的User类没有初始化程序。因此,只有一种方式来初始化它:即通过说User()。所以如果你要像这样定义用户:

class User {
    var firstName: String = ""
    var lastName: String = ""
}

那么你能做的最好的就是:

var tom : User? = User()
tom?.firstName = "Tom"
tom?.lastName = "Soya"

答案 1 :(得分:1)

@ matt的回答是正确的,但这是另一种方式,我认为更清楚:

var tom = Optional(User())

请参阅Optional.init(_:)