habe ich eine Tableview, in dem ich möchte Nachrichten setzen diesen LinkWie füllt man die Tabelle mit JSON-Daten in Swift 3?
https://api.sis.kemoke.net/news
Es gibt drei Dinge, die ich will den Tisch bekommen und zu füllen.
String title
String text
String link
Hier ist meine Klasse
import Alamofire //Framework for handling http requests
import UIKit
/A-Klasse, die HTTP-Anfragen verarbeiten wird, die Nachricht als String empfangen und das Array mit solchen Daten füllen, die in einer Tabelle angezeigt werden/ Klasse NewsTableViewController: UITableViewController {
//Array which holds the news
var newsData:Array<String> = Array <String>()
// Download the news
func downloadData() {
Alamofire.request("https://api.sis.kemoke.net/news").responseJSON { response in
print(response.request) // original URL request
print(response.response) // HTTP URL response
print(response.data) // server data
print(response.result) // result of response serialization
//Optional binding to handle exceptions
if let JSON = response.result.value {
print("JSON: \(JSON)")
}
}
}
override func viewDidLoad() {
super.viewDidLoad()
downloadData()
extractData()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// MARK: - Table view data source
// Number of sections i table vie
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return newsData.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = newsData[indexPath.row]
return cell
}
// Extract the data from the JSON
func extractData() {
Alamofire.request("https://api.sis.kemoke.net/news").responseJSON { response in
debugPrint(response)
if let json = response.result.value {
print("JSON: \(json)")
self.newsData = json as! Array
}
}
}
// MARK: - Navigation
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
}
Später werde ich versuchen, das Bild auch zu bekommen, aber im Moment sollten diese drei Variablen ausreichen.
Warum haben Sie zwei Methoden ('extractData' und' downloadData'), dass machen beide dasselbe? Warum werden beide von 'viewDidLoad' aufgerufen? Warum lädt keiner der beiden den Tisch neu? – rmaddy
@rmaddy Ich dachte, dass es notwendig ist, sie von viewDidLoad aufzurufen. Es liegt an meiner Unerfahrenheit, da ich neu in der Entwicklung mobiler Apps bin. Bitte erklären Sie mir, wie Sie mein Problem lösen können. –