gpt4 book ai didi

swift - 为什么 NSURL 上的这个可失败初始化器(采用可选字符串)无法编译?

转载 作者:行者123 更新时间:2023-11-28 09:12:00 26 4
gpt4 key购买 nike

我有点难以理解为什么这不会编译。编译器抛出以下错误:在从初始化程序返回 nil 之前必须初始化类实例的所有存储属性

错误消息本身并没有多大意义,因为初始化失败就是失败。如果对象实际已初始化,则存储属性应该只需要初始化,不是吗?

当我省略 else { return nil } 时,编译器会抛出一个不同的错误:Use of 'self' in delegating initializer before 'self.init' is called .

extension NSURL {
convenience init?(optionalString: String?) {
if let string = optionalString {
self.init(string: string)
} else {
return nil
}
}
}

最佳答案

您正在调用的初始化程序 self.init(string: string) 本身就是一个方便的初始化程序 - 您应该调用完整的指定初始化程序 init?(string URLString: String, relativeToURL baseURL : NSURL?).

关于swift - 为什么 NSURL 上的这个可失败初始化器(采用可选字符串)无法编译?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29058846/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com