我想覆盖像URL这样的结构的公共初始值设定项。目前我能找到的最佳实现是在URL扩展中定义类似的初始化器,如下所示:
extension URL {
init?(_ string: String) {
if let url = URL(string: string) {
self = url
// insert additional code here
} else {
return nil
}
}
}
否定的是,我必须使用URL(string: String)
替换我的应用程序中的URL(string)
的每个实例。我可以调整初始化器,但那不是非常好的Swift。唯一的另一种选择是子类化URL,但这又意味着我必须替换应用程序中URL的每个实例。还有其他想法吗?
注意:我这样做是为了跟踪我的应用中不安全的http
网址的每个实例,以便我们可以准备切换到https
而不会丢失任何领域。