Я пытаюсь получить данные с сервера с помощью Alamofire и проанализировать ответ с помощью ObjectMapper. На данный момент моя проблема в том, как инициализировать модель с помощью json Object и некоторых начальных значений. Разбор только ответа json с помощью ObjectMapper хорошо работает в следующем коде:
Alamofire.request(url, method: .post, parameters: parameters, encoding: .prettyPrinted, headers: header).responseJSON { (response) in
switch response.result {
case .success(let json):
guard let jsonObj = json as? [String: Any] else {
promise.reject(AFError.responseValidationFailed(reason: .dataFileNil))
}
let list = jsonObj["data"] as? [[String: Any]]
var projects: [Project] = []
for item in list {
if let project = Project(JSON: item) {
projects.append(project)
}
}
promise.fulfill(projects)
case .failure(let error):
promise.reject(error)
}
}
А это Project.swift:
import UIKit
import ObjectMapper
class Project: Mappable {
var id: String?
var projectName: String?
var projectDescription: String?
var companyId: String?
var isService: Bool = false
required convenience init?(map: Map) {
self.init()
}
func mapping(map: Map) {
id <- map["_id"]
projectName <- map["projectName"]
projectDescription <- map["projectDescription"]
if isService {
companyId <- map["serviceId"]
} else {
companyId <- map["companyId"]
}
}
}
Я надеюсь установить isService флаг перед вызовом project = Project (JSON: item) . Примерно так:
let project = Project(JSON: item, isService: true)
or
let project = Project(JSON: item, isService: false)
Кто-нибудь может мне помочь?