1

我的模型定义为

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 中显示的方法。我收到以下错误 在此处输入图像描述

4

1 回答 1

1

1)您试图映射的是一组用户,而不仅仅是一个用户。第二
2) 可映射接口对用户属性一无所知,因此您必须创建一个UserModel.

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

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

self.results = Mapper<UserModel>().map(data)self.results = Mapper<UserModel>().mapArray(data["results"]!)

于 2016-05-19T16:13:54.483 回答