我有一个JSON数据,我想进入UITable。数据是动态的,因此每次加载视图时表都应更新。有人可以帮忙吗?
{
data = (
{
id = 102076330;
name = "Vicky Arora";
}
)
}
答案 0 :(得分:1)
试试这个......
当您收到回复时,请获取整个字典数组
if let arr = response["data"] as? [[String:String]] {
YourArray = arr
// Define YourArray globally
}
然后在tableview单元格中,cellForRowAtIndexPath
方法
if let name = YourArray[indexpath.row]["name"] as? String{
label.text = name
}
//Same You can done with id
不要忘记设置行数
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return YourArray.count
}
答案 1 :(得分:1)
试试这个。但是这个样本我使用的是Alamofire和SwitfyJSON。使用CocoaPod导入它。
import UIKit
import Alamofire
class TableViewController: UITableViewController{
var users: [JSON] = []
override func viewDidLoad() {
super.viewDidLoad()
Alamofire.request(.GET, "http://xxxxx/users.json").responseJSON { (request, response, json, error) in
if json != nil {
var jsonObj = JSON(json!)
if let data = jsonObj["data"].arrayValue as [JSON]?{
self.users = data
self.tableView.reloadData()
}
}
}
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
// #warning Potentially incomplete method implementation.
// Return the number of sections.
return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete method implementation.
// Return the number of rows in the section.
return users.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("UserCell", forIndexPath: indexPath) as! UITableViewCell
let user = users[indexPath.row]
if let idLabel = cell.viewWithTag(100) as? UILabel {
if let id = user["id"].string{
idLabel.text = id
}
}
if let nameLabel = cell.viewWithTag(101) as? UILabel {
if let name = user["name"].string{
nameLabel.text = name
}
}
return cell
}
}
答案 2 :(得分:0)