2016-05-19 2 views
1

Моя модель определяется какКарта MapperObject в модельно быстры

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"] 

    } 

} 

Я сопоставляются JSON к модели с использованием Mapper объектов в

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. Я получаю следующие ошибки: enter image description here

ответ

1

1) Вы пытаетесь сопоставить массив пользователей, а не только одного пользователя. Второй
2) Интерфейс, отображаемый с помощью интерфейса, ничего не знает о свойствах пользователя, поэтому вам необходимо создать массив из UserModel.

С этим сказал, что вы должны изменить следующие строки:

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

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

+0

спасибо много ... Вот почему я люблю ТАК больше, чем моя жена .. .. –

+1

Вы программист, у вас не должно быть жены = S –

+0

Есть ли способ, которым я могу выполнить это с помощью карты? "Mapper () .map (data)" –

Смежные вопросы