Я пытаюсь отобразить некоторые данные в 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
.
Debug область: Афганистан 93 Албания Алжир 355 Американское Самоа 1-684 Андорра 376 Ангола 244 Ангилья 1-264 Antarctica 672 Антигуа и Барбуда Аргентина 1-268 Армения 374 Aruba 297
Кто-нибудь знает, в чем моя проблема? Спасибо!
Вы называете 'reloadData' где угодно? –
Да. Я положил его после «task.resume()». Кроме того, результат дает мне эти 2 ошибки в «cellList.textLabel! .text» -> Нельзя присвоить значение типа «AnyObject»? набрать 'String?' – JoshV