Я учусь программировать быстро, я разработал с Android ранее потребление услуг и сохранил их в модели с помощью дооснащения и сериализации. Теперь в Swift я использую Alamofire 4.0 и SwiftyJson для использования сервиса, и проблема заключается в том, как сохранить все ответы JSON в модели, а затем использовать эти данные. Я рассмотрел несколько примеров, но до сих пор не понимаю, как это сделать. ,
Не могли бы вы сказать мне, как это сделать или что мне нужно добавить, чтобы выполнить это действие, чтобы получить информацию, а затем использовать ее?
поэтому я потребляю услугу
static func loginService(email : String, password : String, completionHandler : @escaping (LoginResponse) -> Void){
let parameters : Parameters = ["email": email, "password": password]
Alamofire.request(AlamofireConstants.LOGIN, method: .post, parameters: parameters, encoding: URLEncoding.default).validate(statusCode: 200..<300).responseData { response in
switch response.result {
case .failure(let error):
print("error ==> \(error)")
case .success(let data):
do{
let result = try JSONDecoder().decode(LoginResponse.self, from: data)
print(result)
} catch {
print(error)
}
}
}
}
это моя модель
struct LoginResponse : Decodable {
let user : User?
let status: Int
let success: Bool
let message: String
}
struct User : Decodable {
let id: Int
let firstName, lastName, surName, email: String
let emailToken: String?
let validate: String
let token, nationality, documentType, documentNumber: String?
let legalName, legalNumber, birthdate: String?
let gender: String
let phoneMovil, phoneFix, icon: String?
let wishOffers, acceptTerms, isCustomer: Int
let active: Bool
let createdAt, updatedAt: String
}
и это JSON из ответа
{
"user": {
"id": 183,
"first_name": "teste",
"last_name": "testet",
"sur_name": "este",
"email": "adeveloper964@gmail.com",
"email_token": null,
"validate": "S",
"token": null,
"nationality": null,
"document_type": null,
"document_number": null,
"legal_name": null,
"legal_number": null,
"birthdate": null,
"gender": "O",
"phone_movil": null,
"phone_fix": null,
"icon": null,
"wish_offers": 0,
"accept_terms": 1,
"is_customer": 0,
"active": true,
"created_at": "2019-05-13 17:04:50",
"updated_at": "2019-05-14 10:19:31"
},
"status": 0,
"success": true,
"message": ""
}
Я получаю эту ошибку
keyNotFound (CodingKeys (stringValue: "firstName", intValue: nil), Swift.DecodingError.Context (codingPath: [CodingKeys (stringValue: "user", intValue: nil)], debugDescription: "Нет значения, связанного с ключом CodingKe (stringValue: \ "firstName \", intValue: nil) (\ "firstName \"). ", underError: nil))