서버 측에서 오류가 발생하면 완료 블록에서 오류를 처리 할 수 있습니다. 여기에는 로그인 용 객체 매퍼 클래스가 있습니다.신속한 오류 처리 objectMapper 및 alamofire를 사용하여
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입니다
// 사용자 로그인 웹 서비스
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