2016-11-27 1 views
1

angezeigt Ich möchte AlamofireObjectMapper zum ersten Mal verwenden, um eine JSON-Antwort in Swift zu analysieren. ich kartiert es wie folgt aus:JSON zu Tabellenansicht

class ModelCurrency: Mappable { 

var success : Bool? 
    var terms  : String? 
    var privacy : String? 
    var timestamp : CGFloat? 
    var source : String? 
    var quotes : [Quotes]? 

    init() {} 

    required init?(map: Map) { 

    } 

    func mapping(map: Map) { 

     success<-map["success"] 
     terms<-map["terms"] 
     privacy<-map["privacy"] 
     timestamp<-map["timestamp"] 
     source<-map["source"] 
     quotes<-map["quotes"] 

     print("It json\(terms)") 
    } 
} 

class Quotes : Mappable { 

    var name : String? 
    var val : CGFloat? 

    required init?(map: Map) { 

    } 

    func mapping(map: Map) { 
     name<-map["name"] 
     val<-map["val"] 
    } 
} 

und mein Controller

var arrayTable = [String]() 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     tableView.delegate = self 
     tableView.dataSource = self 

     super.viewDidLoad() 
     let URL = "http://www.apilayer.net/api/live?access_key=ad847a0a855c0647590df2b818923025" 

     Alamofire.request(URL).responseObject { (response: DataResponse<ModelCurrency>) in 

      let currency = response.result.value!; 

      for quotes in currency.quotes! { 


       self.arrayTable.append(quotes.name!) 

      } 
     } 

    } 


    override func numberOfSections(in tableView: UITableView) -> Int { 

     return 5} 

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

     return arrayTable.count } 


    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "LabelCell", for: indexPath) as UITableViewCell 


     cell.textLabel?.text = self.arrayTable[indexPath.row] 


     return cell 
     } 

Ich möchte Array Anführungszeichen in Tableview angezeigt. Wie es geht ?

Antwort

0

Ich glaube, Sie müssen reload Tabellenansicht, nachdem Sie die Datenquelle arrayTable aktualisiert:

... 
for quotes in currency.quotes! { 
    self.arrayTable.append(quotes.name!) 
} 
self.tableView.reloadData() 
... 

Außerdem Sie nicht super.viewDidLoad() müssen zweimal nennen.

+0

sehr schön danke) –

Verwandte Themen