【发布时间】:2018-03-07 11:26:44
【问题描述】:
我卡在我的代码中,我正在尝试向 API 响应 tableview 单元格显示,但我不知道如何在数组中填充数据,因此在我的 tableviewcell 中没有显示任何内容。我正在迅速使用custome cell和Alamofire。请改进我的错误给我解决方案。
func Api_call()
{
let url = URL(string: "https://dousic.com/api/radiolist")!
let components = URLComponents(url: url, resolvingAgainstBaseURL: true)!
// let fragment = components.fragment!
print(components)
let params = ["user_id":"16" ]
Alamofire.request(url, method: .post, parameters: params, encoding: URLEncoding.default).responseJSON {response in
self.hideActivityIndicator()
var err:Error?
switch response.result {
case .success(let value):
print(value)
let json = JSON(value)
// returns nil if it's not an array
if let resData = json["radioList"].arrayObject
{
self.array_RadioList = resData as! [[String:AnyObject]]
}
if self.array_RadioList.count > 0 {
self.tbl_home.reloadData()
}
case .failure(let error):
err = error
print(err ?? "error .....")
}
}
}`
感谢您的帮助。
编辑
【问题讨论】:
-
我是 swift 新手,请您帮我解决我的问题@Moritz。
-
这是我的 Api 响应 '{ response = { code = 200; radioList = ( { "genre_name" = ( { "genre_id" = 1; "genre_name" = Country; } ); "radio_des" = "Lee Brice - Love Like Crazy"; "radio_fev" = 1; "radio_id" = 30; "radio_img" "dousic.com/uploads/s48937q.png"; "radio_tags" = ".977 Country"; "radio_title" = "Lee Brice - Love Like Crazy"; "radio_url"="7579.live.streamtheworld.com:3690/977_COUNTRY_SC"; },'
-
请为您的 tableview 委托方法提供代码,并在此行
self.array_RadioList = resData as! [[String:AnyObject]]之后打印 self.array_RadioList 来检查您的响应 -
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell : homeCell = tableView.dequeueReusableCell(withIdentifier: "homeCell")!作为! homeCell var dict = array_RadioList[(indexPath as NSIndexPath).row] cell.lbl_name?.text = dict["radio_title"] as?字符串返回单元格 }
标签: ios swift uitableview alamofire