Guten morgen zusammen,
ich bin aktuell dabei einen TableView mit Parse zu Verbinden. Soweit ist alles fertig, leider kommt jedoch eine Fehlermeldung beim ausfüllen der Zellen, hier der Code der Datei:
Alles anzeigen
Fehlermeldung an markierter Stelle: "Thread 1: Fatal error: Index out of range" (Demnach sollte es leere Cells geben, das ist allerdings nicht der Fall)
Hat jemand eine Ahnung was der Fehler sein könnte? Ich vermute, dass es das Programm nicht gut findet, alle Labels der Cell im indexPath.row zu laden
Vielen Dank und einen ruhigen Start in die Woche,
Tom
ich bin aktuell dabei einen TableView mit Parse zu Verbinden. Soweit ist alles fertig, leider kommt jedoch eine Fehlermeldung beim ausfüllen der Zellen, hier der Code der Datei:
Quellcode
- import UIKit
- import Parse
- class NewsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
- private var reuseIdentifer = "NewsCell"
- var titleLabel: UILabel!
- var backButton: UIButton!
- var tableView: UITableView!
- var user: [String] = [String]()
- var descriptions = [String]()
- var content = [String]()
- var time = [String]()
- override func viewDidLoad() {
- super.viewDidLoad()
- view.backgroundColor = .white
- createViewControllerItems()
- retrieveUser()
- retrieveDescription()
- retrieveContent()
- retrieveTime()
- }
- func createViewControllerItems() {
- //gekürzt
- }
- @objc func backSettings() {
- let vc: SettingsViewController!
- vc = SettingsViewController()
- vc.modalPresentationStyle = .fullScreen
- present(vc, animated: true)
- }
- func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
- return user.count
- }
- func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
- let cell = tableView.dequeueReusableCell(withIdentifier: reuseIdentifer, for: indexPath) as! NewsCell
- cell.postName.text = self.user[indexPath.row]
- cell.descriptionLabel.text = self.descriptions[indexPath.row] (FEHLER!!!)
- cell.contentLabel.text = self.content[indexPath.row]
- cell.timeLabel.text = self.time[indexPath.row]
- return cell
- }
- @objc func retrieveUser() {
- var query:PFQuery = PFQuery(className: "News")
- query.findObjectsInBackground { (objects:[AnyObject]!, error:Error!) -> Void in
- self.user = [String]()
- for news in objects {
- self.user.append(news["user"] as! String)
- }
- self.tableView.reloadData()
- }
- }
- @objc func retrieveDescription() {
- var query:PFQuery = PFQuery(className: "News")
- query.findObjectsInBackground { (objects:[AnyObject]!, error:Error!) -> Void in
- self.descriptions = [String]()
- for description in objects {
- self.user.append(description["description"] as! String)
- }
- self.tableView.reloadData()
- }
- }
- @objc func retrieveContent() {
- var query:PFQuery = PFQuery(className: "News")
- query.findObjectsInBackground { (objects:[AnyObject]!, error:Error!) -> Void in
- self.content = [String]()
- for content in objects {
- self.user.append(content["content"] as! String)
- }
- self.tableView.reloadData()
- }
- }
- @objc func retrieveTime() {
- var query:PFQuery = PFQuery(className: "News")
- query.findObjectsInBackground { (objects:[AnyObject]!, error:Error!) -> Void in
- self.time = [String]()
- for time in objects {
- self.user.append(time["time"] as! String)
- }
- self.tableView.reloadData()
- }
- }
- }
Hat jemand eine Ahnung was der Fehler sein könnte? Ich vermute, dass es das Programm nicht gut findet, alle Labels der Cell im indexPath.row zu laden
Vielen Dank und einen ruhigen Start in die Woche,
Tom