是否有可能,如果是的话,如何在这样的类中有多个不带参数的初始化(字符串只是一个例子):
aVar: String
init() {
aVar = "simple init"
}
initWithAGoodVar() {
aVar = "Good Var!"
}
initWithFooBar() {
aVar = "Foo Bar"
}
最佳答案
你不能有多个没有参数的 init
,因为你想使用哪个 init
方法是不明确的。作为替代方案,您可以将初始值传递给 init
方法。以您的问题为例:
class MyClass {
var myString: String
init(myString: String) {
self.myString = myString
}
}
let a = MyClass(myString: "simple init")
或者,如果 myString
只是某些值,您可以使用 enum
:
class MyOtherClass {
enum MyEnum: String {
case Simple = "Simple"
case GoodVar = "GoodVar"
case FooBar = "FooBar"
}
var myString: String
init(arg: MyEnum) {
myString = arg.rawValue
}
}
let b = MyOtherClass(arg: .GoodVar)
println(b.myString) // "GoodVar"
关于swift - Swift 如何有多个 init(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30550640/