我的代码在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的返回类型.