【发布时间】:2020-01-19 20:37:54
【问题描述】:
使用以下完成处理程序代码,为什么它会给我一个关于 completionClosure 类型的错误?
enum ModelSerializerError: Error {
case readjson(String)
case writejson(String)
case writeFirebase(String)
case readFirebase(String)
}
enum ModelSerializerResult<T> {
case success(T)
case failure(ModelSerializerError)
}
static func serializeToFirebase<T>(value: T.Type, path: String, completion: @escaping (ModelSerializerResult<Void>) -> Void) where T: Encodable { ... }
// Later in some function...
let handleError : (Error) -> () =
{ error in
print("Error: \(error)")
}
let completionClosure : (ModelSerializerResult) -> () =
{ result in // Cannot convert value of type '(_) -> ()' to specified type '(ModelSerializerResult) -> ()'
switch result {
case .success(let val): ()
case .failure(let error): handleError(error)
}
}
serializeToFirebase(value: MyClass.self, path: path, completion: completionClosure)
【问题讨论】: