我对iOS开发很陌生,所以请保持温和。
我正在使用Alamofire和SwiftyJSON库来获取和解析服务器上的JSON文件。我也使用这个tutorial来获得一个带有几个单元格的UITableView" Cell 1" " Cell 2" " Cell 3"。
使用我编写的SwiftyJson插件:
request(.GET, url, parameters: parameters)
.responseJSON { (req, res, json, error) in
if(error != nil) {
NSLog("Error: \(error)")
println(req)
println(res)
}
else {
NSLog("Success: \(url)")
var json = JSON(json!)
var indexValue = 0
for (index, item) in enumerate(json) {
println(json[index]["Brand"]["Name"])
var indvItem = json[index]["Brand"]["Name"].stringValue
self.items.insert(indvItem, atIndex: indexValue)
indexValue++
}
}
}
println()行有效并显示正确的项目:
println(json[index]["Brand"]["Name"])
然而,我似乎无法让他们进入细胞。
在文件的顶部,根据UITableView教程的说明,我有这一行:
var items = ["Cell 1", "Cell 2", "Cell 3"]
没有错误,细胞只保留原始值。 如何获取JSON响应以更新UITableView中的单元格?
编辑:
@IBOutlet var tableView: UITableView!
var items = ["Cell 1", "Cell 2", "Cell 3"]
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.items.count;
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
cell.textLabel.text = self.items[indexPath.row]
return cell
}
func tableView(tableView: UITableView!, didSelectRowAtIndexPath indexPath: NSIndexPath!) {
println("You selected cell #\(indexPath.row)!")
}
答案 0 :(得分:2)
你需要在解析数据后重新加载表,所以像 -
request(.GET, url, parameters: parameters)
.responseJSON { (req, res, json, error) in
if(error != nil) {
NSLog("Error: \(error)")
println(req)
println(res)
}
else {
NSLog("Success: \(url)")
var json = JSON(json!)
var indexValue = 0
for (index, item) in enumerate(json) {
println(json[index]["Brand"]["Name"])
var indvItem = json[index]["Brand"]["Name"].stringValue
self.items.insert(indvItem, atIndex: indexValue)
indexValue++
}
self.tableView.reloadData() <-----------------------
}
}