【问题标题】:Map MapperObject to Model- swift将 MapperObject 映射到模型 - swift
【发布时间】:2016-05-19 16:00:04
【问题描述】:

我的模型定义为

import ObjectMapper

class UserModel :Mappable{

    var gender: String?
    var name: String?
    var location: String?
    var email: String?

    required init?(_ map: Map) {

    }

    // Mappable
    func mapping(map: Map) {
        gender <- map["gender"]
        name   <- map["name"]["title"]
        location <- map["location"]["street"]
        email <- map["email"]

    }

}

我已经使用 Object Mapper 将 json 映射到 Model

var results:Mappable?

让 appUrl = "http://api.randomuser.me/?page=3&results=10"

func requestRandomNamesFromServer(){

        let randomPersonURl = appUrl
        Alamofire.request(.GET, randomPersonURl, parameters: nil,headers:nil).responseJSON { response in

            switch response.result {

            case .Success(let data):

                print(data)
                self.results = Mapper<UserModel>().map(data)
                print(self.results)
                self.tableView.reloadData()


            case .Failure(let error):

                print("Request failed with error: \(error)")


            }
        }

    }

问题是我无法找到在模型中转换回用于在 TableView 中显示的方法。我收到以下错误

【问题讨论】:

    标签: ios swift uitableview swift2.2 objectmapper


    【解决方案1】:

    1) 您尝试映射的是一组用户,而不仅仅是一个用户。 第二
    2) 可映射接口不知道任何关于用户属性的事情,所以你必须创建一个UserModel 的数组。

    话虽如此,您必须更改以下几行:

    var results:Mappable?var results = [UserModel]()

    self.results = Mapper&lt;UserModel&gt;().map(data)self.results = Mapper&lt;UserModel&gt;().mapArray(data["results"]!)

    【讨论】:

    • 我有什么方法可以使用地图完成此任务吗? "映射器().map(data)"
    • 我的意思是这样让 mapResults:Mappable = Mapper().map(data)! print(mapResults) let mappedUserResults = mapResults["data"] as! [用户模型] print(mappedUserResults)
    猜你喜欢
    • 2020-12-23
    • 2010-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多