我想第一次使用AlamofireObjectMapper来解析swift中的json响应。 我把它映射成这样:
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"]
}
}
和我的控制器
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
}
我想在tableview中显示数组引号。怎么做 ?
答案 0 :(得分:0)
我认为您在更新数据源arrayTable
后需要reload表格视图:
...
for quotes in currency.quotes! {
self.arrayTable.append(quotes.name!)
}
self.tableView.reloadData()
...
此外,您不需要两次致电super.viewDidLoad()
。