Unten ist mein Code. Hier funktioniert Druck (Währung) Funktion .. Das bedeutet, Json Daten abgerufen wird. Wird aber nicht in der Tabellenansicht angezeigt.Laden von JSON-Daten in die Tabellenansicht funktioniert nicht
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var TableData:Array<String> = Array <String>()
override func viewDidLoad()
{
super.viewDidLoad()
get_data_from_url("http://api.fixer.io/latest")
}
Teil einer Tabellen-
public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return(TableData.count)
}
public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "cell")
cell.textLabel?.text = TableData[indexPath.row]
return (cell)
}
JSON Abrufen von Daten
func get_data_from_url(_ link:String)
{
let url = URL(string: "http://api.fixer.io/latest")
let task = URLSession.shared.dataTask(with: url!) { (data, response, error) in
if error != nil
{
print ("ERROR")
}
else
{
if let content = data
{
do
{
//Array
let myJson = try JSONSerialization.jsonObject(with: content, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
if let rates = myJson["rates"] as? NSDictionary
{
if let currency = rates["NOK"] as? String
{
print(currency)
self.TableData.append(currency)
self.tableView.reloadData()
}
}
}
catch
{
}
}
}
}
task.resume()
}
Die Daten werden mit der Druckfunktion in der Xcode zeigt. Es ist also klar, dass Daten abgerufen werden. Aber das Problem ist, wenn die Daten in die Tabellenansicht geladen werden.
Bitte helfen Sie mir, es zu laden.
entfernen 'public' von den Tableview Methoden Überprüfen Sie auch Ihre' 'tableView' delegate' und 'dataSourece' ist ordnungsgemäß mit Ihrem viewController verbunden. –
Wieder funktioniert es nicht @NiravD – Rash
Reload die tableView auf Hauptthread wie 'DispatchQueue.main.async {self.tableView.ReloadData()}' –