我如何返回错误和完成结果并像这样调用我的函数? 我应该在函数中写些什么,以返回完成结果和错误(如果有的话)?
示例:
static func signIn(email: String, enablefor: String,
func: String, completion: @escaping ((User) -> Void))
我要编辑的功能:
{{1}}
答案 0 :(得分:0)
您只需要声明您的完成处理程序以元组作为输入参数,并确保将User
和Error
参数都标记为Optional
,因为您应该永远返回两者之一。
static func signIn(email: String, enablefor: String, func: String, completion: @escaping ((User?,Error?) -> Void))
signIn(withEmail: emailTextField.text!, password: passwordTextField.text!) { (user, error) in
if error == nil, let user = user {
self.performSegue(withIdentifier: "loginToHome", sender: nil)
} else {
let alertController = UIAlertController(title: "Error", message: error?.localizedDescription, preferredStyle: .alert)
}
}
您实际上应该使用user
参数,因为目前您还没有使用它。
答案 1 :(得分:0)
这样声明:
completion: @escaping ((User?, Error?) -> Void)
功能内:
completion(user, nil) // when you have user
completion(nil, error) // when you have error
在完成区调用中:
completion: { user, error in
if let error = error {
// handle error
}
if let user = user {
// handle user
}
}