覆盖URL描述
最初,我尝试使用如下内容:覆盖URL描述,url,swift3,foundation,customstringconvertible,Url,Swift3,Foundation,Customstringconvertible,最初,我尝试使用如下内容: extension URL: CustomStringConvertible{ public override var description: String { let url = self return url.path.removingPercentEncoding ?? "" } } 修复后,编译器警告代码变为: extension URL{ public var description: Str
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)
仍然显示带有百分比的旧URL描述。您不能覆盖扩展中的方法。你想做的事在斯威夫特是不可能的。在ObjC(onNSURL
)中,可以通过滑动方法来实现,但决不能在生产代码中实现。即使您可以通过一些技巧在Swift中实现上述功能,也不应该出于同样的原因在生产代码中使用它。它很容易以非常令人惊讶的方式影响您(例如,它可能会破坏NSCoding
实现,这些实现期望description
以某种方式工作
如果需要这种样式的字符串,请为其创建一个方法,并在需要时调用它。不要在现有类中修改description