覆盖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(on
NSURL
)中,可以通过滑动方法来实现,但决不能在生产代码中实现。即使您可以通过一些技巧在Swift中实现上述功能,也不应该出于同样的原因在生产代码中使用它。它很容易以非常令人惊讶的方式影响您(例如,它可能会破坏
NSCoding
实现,这些实现期望
description
以某种方式工作

如果需要这种样式的字符串,请为其创建一个方法,并在需要时调用它。不要在现有类中修改
description