【问题标题】:Override URL description覆盖 URL 描述
【发布时间】:2017-09-08 19:31:25
【问题描述】:

最初我尝试使用这样的东西:

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 描述。

【问题讨论】:

    标签: url swift3 foundation customstringconvertible


    【解决方案1】:

    您不能覆盖扩展中的方法。你想要做的事情在 Swift 中是不可能的。在 ObjC(NSURL)中可以通过调配方法来实现,但这绝不应该在生产代码中完成。即使您可以通过一些技巧在 Swift 中实现上述功能,出于同样的原因,您也不应该在生产代码中使用它。它很容易以非常令人惊讶的方式影响您(例如,它可能会破坏期望 description 以某种方式工作的 NSCoding 实现。

    如果你想要这种风格的字符串,为它创建一个方法并在你需要的时候调用它。不要修改现有类中的description

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多