Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida no Ex. 2 da Aula 3 - Delegates e Protocols

Para compilar e rodar tive que trocar o "as ViewController" por "as! ViewController". Alguém sabe o que significa este "as!" ?

4 respostas

Fiz o mesmo e ele nao atualiza a Table, mantem os registros que carreguei inicialmente

No meu caso atualizou a table sim.

veja o código que rodou bem:

class MealsTableViewController: UITableViewController, ViewControlerDelegate {

    var meals = [
        Meal(name: "Macarrão", happiness: 5),
        Meal(name: "Pizza", happiness: 3)]

    func add(meal:Meal) {
        meals.append(meal)
        tableView.reloadData()
    }

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        if segue.identifier == "addMeal" {
            let view = segue.destinationViewController as! ViewController
            view.delegate = self
        }
    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return meals.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        var cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: nil)
        cell.textLabel!.text = meals[indexPath.row].name
        return cell
    }

}
solução!

Oi Carlos,

A Apple mudou um pouco a sintaxe do Swift e por isso passou a acontecer esse erro. O as! é pra forçar o cast para ViewController.

Dependendo da versão do Xcode que você utilizar, este erro pode acontecer.

Abraço