我将JSON数据传递给此表视图控制器。如何设置JSON数据的行数?如何定义..
print(passedData),输出:
["jobs": <__NSArrayM 0x17005d9d0>({
jobDate = "2017-08-31";
jobEndTime = 1504144800;
jobID = 87;
jobTime = 1504137600;}),
"result": success, "message": Retrieve Sucessfully]
我的代码
var passedData: [String: Any]!
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//jobs.count
return 0
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let row : UITableViewCell = UITableViewCell();
//Add every Row
return row;
}
答案 0 :(得分:0)
也许这会有所帮助!
var passedData: [String: Any]!
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
//jobs.count
if let jobs = passedData["jobs"] as? [[String:Any]] {
return jobs.count
}
return 0
}
答案 1 :(得分:0)
您需要使用“作业”键访问词典中的内容。
var jobIDs = [Int]()
override func viewDidLoad(){
super.viewDidLoad()
guard let jobs = passedData["jobs"] as? [[String:Any]] else {return }
for job in jobs {
if let idString = job["jobID"] as? String, let id = Int(idString) {
jobIDs.append(id)
}
}
tableView.reloadData()
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return jobIDs.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel.text = "\(jobIDs[indexPath.row])"
return cell
}
如果要使用passedData
字典中的数据,在单独的函数中进行解析是有意义的,这样您就可以在所有UITableViewDataSource
函数中使用已解析的结果。使用此方法,您可能希望在解析函数结束时调用tableView.reloadData()
。