私のアプリケーションでは、オブジェクト マッピングに alamofire オブジェクト マッパーを使用しています。これが私のコードです
class OrderDetail: Mappable {
var Message : String!
var Status : Int!
var result:[OrderDetailData]?
required init?(_ map: Map) {
}
func mapping(map: Map) {
Message <- map["Message"]
Status <- map["Status"]
result <- map["Result"]
}
}
class OrderDetailData: Mappable {
var statusId: String?
var tax: String?
var total: String?
var toTime: String?
var updated: String?
var userId: String?
var orederDetail : [OrderDetailSecond]?
required init?(_ map: Map){
}
func mapping(map: Map) {
statusId <- map["status_id"]
tax <- map["tax"]
total <- map["total"]
toTime <- map["totime"]
updated <- map["updated"]
userId <- map["user_id"]
orederDetail <- map["F017A_order_detail"]
}
}
class OrderDetailSecond: Mappable {
var id : String?
var isRxMedicine : Int?
var medicineTypeId : String?
var name : String?
var orderId : String?
var price : String?
var quentity : String?
var strength : String?
required init?(_ map: Map){
}
func mapping(map: Map) {
id <- map["id"]
isRxMedicine <- map["is_rx_medicine"]
medicineTypeId <- map["medicine_type_id"]
name <- map["name"]
orderId <- map["order_id"]
price <- map["price"]
quentity <- map["qty"]
strength <- map["strengh"]
}
}
これが私がマッピングを行う方法です。これは私のAPI呼び出しです
class DataControllerOrderDetail: UIViewController {
func get_order_detail(orderId : String,completion : (orderDetailObject : OrderDetail) -> Void) {
let url = "\(OrderURL)full_order_data"
let param : [String : AnyObject] = [
"orderId" : orderId
]
Alamofire.request(.GET, url, parameters: param, encoding: .URL).responseObject { (response:Response<OrderDetail, NSError>) in
switch response.result{
case .Success(let value) :
var my_order_detail : OrderDetail?
my_order_detail = value
completion(orderDetailObject: my_order_detail!)
case.Failure(let error) : break
}
}
}
}
orderDetailSecond クラス要素の値にアクセスするために、このコードを実行しています
override func viewDidLoad() {
DataControllerObject.get_order_detail(order_id) { (orderDetailObject) in
self.my_order_list = orderDetailObject
if let orderdetail = self.my_order_list, orderDetailDataObject = orderdetail.result {
let detailArray = orderDetailDataObject[0].orederDetail
if let orderdata = detailArray
{
print(orderdata.count)
}
}
}
}
orderDetailSecond
クラス要素の値にアクセスするたびに、これは必須 です。などに直接アクセスできるようにマップするにはどうすればよいですか。orderDetailSecond.elementname