我正在尝试用 swift 编写自定义初始化程序。 我有这样的东西:
convenience init(datasource:SomeProtocol) {
assert(datasource != nil, "Invalid datasource")
if(datasource == nil) {
return nil
}
self.init()
}
“return nil”行给我这个错误:“找不到接受提供的参数的‘__conversion’的重载”
所以,我想要完成的就是让这个方便的初始化器在调用者没有提供有效数据源时返回 nil。
我在这里做错了什么?
谢谢
最佳答案
更新:从 Xcode 6.1 beta 1 开始 (available in the Mac Dev Center) , Swift 初始化器可以声明为返回一个可选的:
convenience init?(datasource:SomeProtocol) {
if datasource == nil {
return nil
}
self.init()
}
或隐式展开的可选:
convenience init!(datasource:SomeProtocol) {
if datasource == nil {
return nil
}
self.init()
}
关于ios - 如何在自定义初始化程序中快速返回 nil?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24189965/