众所周知,Swift编译器强制在构造函数中初始化所有属性。但是,有时我只想要初始化一些属性。下面是一个例子,我只需要在第二个构造函数中使用变量b而不需要变量a但是编译器正在抱怨" a未初始化"。我想知道如何处理这个案子。
class aClass{
var a:String
var b:String
init(a:String){
self.a = "a"
}
init(a:String, b:String){
self.a = "a"
self.b = "b"
}
}
答案 0 :(得分:1)
这是选项的用途。您的财产声明b可以更改为var b: String?
。这将使它不必在init中赋值。然后,当您想要使用它时,if let self.b = "my string" {...}
或者,如果您知道它有值,您可以强行打开它:var myOtherString = b!
。