サーバサイドからエラーが発生した場合、どのようにエラーを処理できますか。ログイン用のオブジェクトマッパークラスです。objectMapperとalamofireを使用したswift 3でのエラー処理
class Login: Mappable {
var result: LoginData?
var success: Bool?
var error: String?
required init?(map: Map){
}
func mapping(map: Map) {
result <- map["data"]
success <- map["success"]
error <- map["error"]
}
}
class LoginData: Mappable {
var name: String?
var title: String?
var token: String?
var imageUrl: String?
required init?(map: Map){
}
func mapping(map: Map) {
name <- map["name"]
title <- map["title"]
token <- map["token"]
name <- map["name"]
imageUrl <- map["imageUrl"]
}
}
ここはビューコントローラからの私のAPI呼び出しです。
func loginMethod(){
let postData = ["username":loginDict.object(forKey: KUserUserId) as! String,
"password": loginDict.object(forKey: KUserPass) as! String]
userLoginHttp(parameters: postData){ completion in
self.getUserLoginResponse(result: completion)
}
}
func getUserLoginResponse(result: LoginData) {
// Here i do further
}
これは、ネットワーククラスmthodである私は、サービス
//ユーザログインWebサービス
func userLoginHttp(parameters:Parameters, completion:@escaping (_
result:LoginData)->()) {
let defaultObject = UserDefaults.standard
var headerToken = String()
if let x = defaultObject.object(forKey: KDeviceToken)
{
headerToken = x as! String
}
else{
headerToken = ""
}
let headers = ["fcmToken": headerToken]
Alamofire.request(KLoginUrl, method: .post, parameters: parameters,encoding: JSONEncoding.default, headers: headers)
.validate()
.responseObject{ (response: DataResponse<Login>) in
switch response.result{
case .success:
let value = response.result.value
completion((value?.result)!)
case .failure(let error):
print(error.localizedDescription)
}
}
}
を発射どこから、どのように私は私のビューコントローラ完了ブロックでエラーを処理することができますか?
を呼び出すことができますが、現在、エラーは、サーバー側から処理されないウェブ応答 –
を投稿することができます。しかし、私はエラーがサーバー側から来る場合、どのように処理できるかを知りたい。私はsuccesの完了ブロックを使用しているので、どのようにエラーの完了ブロックを使用することができますか? – user3655325