Nicholas  Dudla Nicholas Dudla - 8 days ago 5
JSON Question

JSON displayed to tableview

I want to use AlamofireObjectMapper for the first time to parse a json response in swift.
I mapped it like this:

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


and my 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
}


I want array quotes displayed in tableview. How to do it ?

Answer

I think you need to reload table view after you updated the data source arrayTable:

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

Besides, you don't need to call super.viewDidLoad() twice.

Comments