扩展到约束字典符合协议

时间:2016-01-22 15:46:10

标签: ios swift generics protocols extension-methods

我正在尝试创建一个允许使用JSON NSData实例化任何对象的协议。

我正在尝试创建符合此协议的[String:String]字典的扩展名。不幸的是,由于某些原因,以下代码不起作用:

public protocol InitializableWithData {
    init(data: NSData?) throws 
}


extension Dictionary: InitializableWithData where Key: String, Value: String {
    public init(data: NSData?) {
        self.init()
        // Parse NSData into a [String: String]
    }
}

我收到以下错误:

Extension of type 'Dictionary' with constraints cannot have an inheritance clause

我也尝试过:

extension Dictionary: InitializableWithData where Key: NSString, Value: NSString {
    public init(data: NSData?) {
        self.init()
        // Parse NSData into a [String: String]
    }
}

鉴于String是一个结构,但它仍然不起作用。

0 个答案:

没有答案