我試圖顯示一些數據到UITableView
,但數據沒有顯示在UITableView
。數據以JSON格式化。錯誤 - 顯示json數據到tableview swift
我寫信是爲了顯示爲UITableView
的代碼是這樣的:
var mainList:[[String:AnyObject]] = []
@IBOutlet var listCountriesTableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
self.listCountriesTableView.dataSource = self
self.listCountriesTableView.delegate = self
let urlPath = "http://data.okfn.org/data/core/country-codes/r/country-codes.json"
let url = NSURL(string: urlPath)
let session = NSURLSession.sharedSession()
let task = session.dataTaskWithURL(url!, completionHandler: { data, response, error -> Void in
if (error != nil) {
print(error)
} else {
do {
let jsonResult = try NSJSONSerialization.JSONObjectWithData(data!, options: NSJSONReadingOptions.AllowFragments) as! [[String:AnyObject]]
for country in jsonResult {
let countryName = country["name"]!
let countryDial = country["Dial"]!
let nameDial = ["name":countryName, "Dial":countryDial]
self.mainList.append(nameDial)
print(country["name"]!, country["Dial"]!)
}
} catch let error as NSError {
print(error)
}
}
})
task.resume()
}
}
extension ListOfCountriesViewController: UITableViewDataSource, UITableViewDelegate {
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.mainList.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellList = tableView.dequeueReusableCellWithIdentifier("cellListCountries")! as UITableViewCell
let data = mainList[indexPath.row]
let countryTableView = data["name"]
let codeTableView = data["Dial"]
cellList.textLabel!.text = countryTableView
cellList.detailTextLabel!.text = codeTableView
return cellList
}
的print(country["name"]!
,country["Dial"]!)
顯示我的國家的正確列表以及撥號代碼在調試區域,但沒有顯示在UITableView
。
調試面積: 阿富汗93 阿爾巴尼亞355 阿爾及利亞213 美屬薩摩亞1〜684位 安道爾376 安哥拉244 安圭拉I-264 南極洲672 安提瓜和巴布達1-268 阿根廷54 亞美尼亞374 阿魯巴297
任何人都知道我的問題是什麼? 謝謝!
你是否在任何地方調用'reloadData'? –
是的。我把它放在「task.resume()」之後。另外,結果在「cellList.textLabel!.text」中給我這兩個錯誤 - >不能指定'AnyObject'類型的值。鍵入'String?' – JoshV