有人知道如何解决这个bug吗?顺便说一句,我是个初学者,善良一点!
AF.request(URL_LOGIN, method: .post, parameters: body, encoding: JSONEncoding.default, headers: header).responseJSON { (response) in
if response.result.erro == nil {
if let json = response.result.erro as? Dictionary<String, Any> {
if let email = json["user"] as? String {
self.userEmail = email
}
if let token = json["token"] as? String {
self.authToken = token
}
}
self.isLoggedIn = true
completion(true)
} else {
completion(false)
debugPrint(response.result.error as Any)
在此处输入图像描述
首先检查拼写,erro
毫无意义。
根据错误,result
的值为Result<Any, AFError>
,Result
是具有相关类型和两种情况的枚举:success
和failure
语法必须类似
AF.request(URL_LOGIN, method: .post, parameters: body, encoding: JSONEncoding.default, headers: header).responseJSON { (response) in
switch response.result {
case .success(let result):
if let json = result as? Dictionary<String, Any> {
if let email = json["user"] as? String {
self.userEmail = email
}
if let token = json["token"] as? String {
self.authToken = token
}
}
self.isLoggedIn = true
completion(true)
case .failure(let error):
completion(false)
debugPrint(error)
}
}
逻辑不太符合逻辑。我确信,如果email
和token
无效,则self.isLoggedIn
不应该是true
,并且在发生错误时应该设置为false
。