以下代码无法编译:
public protocol Foo: Decodable {
var message: String { get }
}
struct Bar: Foo {
let message: String
}
// the type conforming Foo protocol is passed from somewhere
let type: Foo.Type = Bar.self
decode(type: type, from: Data())
func decode<T>(type: T.Type, from data: Data) Where T: Decodable {
let decoder = JSONDecoder()
try! decoder.decode(type, from: data)
}
它抛出错误:
Cannot invoke 'decode' with an argument list of type '(Foo.Type, from: Data)'
你们有什么想法吗?