【发布时间】:2017-07-15 09:09:59
【问题描述】:
我有这样的功能:
func someFunction<T: Codable>(x: Double, y: Double, outputClass: T, completionBlock: CompletionBlock)
完成块是:
enum Result {
case success(Codable)
case failure(String?)
}
typealias CompletionBlock = (Result) -> Void
我想要实现的是,当你调用函数时,例如:
someFunction(x: 12, y: 12, outputClass: Foo.self) { (result) in
switch result {
case .success(let result):
}
我的 let 结果在成功案例中是 Foo 类型的。
我有一个 Foo 结构:
struct Foo: Codable {
let content: String
}
现在当我尝试调用 xCode 告诉我的函数时:
Argument type 'Foo.Type' does not conform to expected type 'Encodable'
但结构符合 Codable 类型,即可编码和可解码。
谁能解释一下我做错了什么?
【问题讨论】:
-
您传递的是 Type 的实例,而不是符合
Codable的对象的实例。