Swift协议定义返回self的类方法

前端之家收集整理的这篇文章主要介绍了Swift协议定义返回self的类方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我的代码在XCode 6 beta中运行,但在更新到 xcode 6.1之后最近停止了工作.

这是我的协议:

protocol CanDeserialiseFromJson {
    class func FromJson(json : JSONValue) -> Self
}

这是实施:

extension Invoice : CanDeserialiseFromJson {
    class func FromJson(json : JSONValue) -> Self {
        return Invoice()
    }
}

这没有给出错误

'Invoice' is not convertable to 'Self'

正如我所说,这曾经工作,我无法解决为什么它不再存在

协议中的Self要求协议的实现使用它们自己的类型.由于Invoice是您采用协议的类型,因此FromJson的实现应具有Invoice的返回类型.

猜你在找的Swift相关文章