ios - uitableviewcontroller - uitableview tutorial swift 4
Swift: no puede invocar ''reloadData'' sin argumentos (1)
El mensaje de error es engañoso, pero el problema es que su FirstViewController
no tiene una propiedad tableView
.
Lo más probable es que desee que FirstViewController
herede de UITableViewController
lugar de UIViewController
. Eso resolvería el problema porque UITableViewController
tiene una propiedad tableView
.
Actualmente estoy construyendo mi primera aplicación en Swift. Yo uso Parse como base de datos y quiero mostrar todos los títulos en la tabla de Recetas. Creé una matriz para todos los títulos y agregué cada vez un título. Pero mi función tableView no la actualiza (count = 0)
Creo que es porque no recargo TableView después de agregar un título a mi matriz. Pero obtengo un error si agrego self.tableView.reloadData()
-> No puedo invocar ''reloadData'' sin argumentos.
¿Alguien me puede ayudar? Intenté muchas cosas y busqué en Internet pero no pude encontrar una respuesta.
Mi código:
import UIKit
import Parse
import Bolts
class FirstViewController: UIViewController, UITableViewDelegate {
var titel = [String]()
var afbeelding = [UIImage]()
var afbeeldingFile = [PFFile]()
override func viewDidLoad() {
super.viewDidLoad()
var query = PFQuery(className:"Recipes")
query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in
if error == nil {
// The find succeeded.
println("Successfully retrieved /(objects!.count) scores.")
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {
self.titel.append((object["titel"] as! String?)!)
println(self.titel)
self.tableView.reloadData() //THIS GIVES AN ERROR - Cannot invoke ''reloadData'' with no arguments
}
}
} else {
// Log details of the failure
println("Error: /(error!) /(error!.userInfo!)")
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func numberOfSectionsInTableView(tableView: UITableView) -> Int {
return 1
}
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return titel.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! Cell
cell.gerechtTitel.text = titel[indexPath.row]
return cell
}
}
Espero que me puedan ayudar :)