Mar*_*eon 16 initialization ios swift
我们在下面的便捷方法上遇到以下错误:
self.init call之前自我使用
class MyClass {
var id : Int
var desc : String
init?(id : Int, desc : String) {
self.id = id
self.desc = desc
}
convenience init?(id : Int?) {
guard let x = id else {
return
}
self.init(id : x, desc : "Blah")
}
}
Run Code Online (Sandbox Code Playgroud)
我们如何在Swift中实现这种行为?
小智 31
正如Leo已经指出的那样,安抚编译器的最快方法是在guard语句中返回nil.
convenience init?(id : Int?) {
guard let x = id else {
return nil
}
self.init(id: x, desc: "Blah")
}
Run Code Online (Sandbox Code Playgroud)
除非有特定原因,否则您也可以避免首先使用可用的初始化程序.init(id : Int, desc : String)
编译得很好.
归档时间: |
|
查看次数: |
8862 次 |
最近记录: |