最初我试图使用这样的东西:
extension URL: CustomStringConvertible{
public override var description: String {
let url = self
return url.path.removingPercentEncoding ?? ""
}
}
修复编译器警告代码后变为:
extension URL{
public var description: String {
let url = self
return url.path.removingPercentEncoding ?? ""
}
}
但是
print(fileURL)
仍会显示包含百分比的旧网址说明。
答案 0 :(得分:1)
您无法覆盖扩展程序中的方法。在Swift中你不可能做的事情是不可能的。通过调整方法可以在ObjC(在NSURL
上)进行,但这绝不应该在生产代码中完成。即使你可以通过一些技巧在Swift中完成上述工作,你也不应该出于同样的原因在生产代码中使用它。它可能会以非常令人惊讶的方式轻易影响您(例如,它可能会破坏NSCoding
实现,期望description
以某种方式工作。
如果您想要这种类型的字符串,请为其创建一个方法,并在需要时调用它。不要修改现有课程中的description
。