Со следующим кодом обработчика завершения, почему он выдает ошибку о типе 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)