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

Erro MealsTableViewController

Não `estou entendendo esse erro:

https://github.com/verosegal/Pizza2/commit/432c7c353e11bf609dca9024bccc22d70a5dfaf3 Me ajude por favor.

Grata,, Vronica

10 respostas

Oi Veronica, tudo bem ?

Pelo que vi, o erro é referente ao construtor do seu objeto Meal, ele precisa de um parametro chamado itens, que você não está passando.

Olá Matheus,

Obrigada, mas nao vi isso na aula. Como e aonde eu coloco o parâmetro?

Grata, Veronica

Toda vez que precisamos construir um objeto do tipo Meal, nós usamos o seu construtor.

O mais legal é que swift deixa tudo muito claro, você precisa falar o nome, a felicidade e os itens que são necessários para criar uma refeição :

val itens = [Item(name: "Tomate"), Item(name: "Cheese")]
Meal(name: "Pizza", happiness: 5, itens: itens)

Você deve ter um objeto do tipo Item na sua aplicação que representa cada item da sua refeição.

Eu continuo sem entender... To rodando projeto Eggplant Brownie e nao tem isso dos itens... Mudeis os meals e os itens do projeto e continua funcionando... já o projeto que eu criei nao vai...

Pode me passar sua classe Meal ? Assim consigo te auxiliar melhor.

Aqui esta:

class Meal {
    let name:String
    let happiness:Int
    var items = Array<Item>()

    init(name:String, happiness:Int, items: Array<Item>)  {
        self.name = name
        self.happiness = happiness
        self.items = items
    }
   func allCalories() -> Double {
        var total:Double = 0
        for Item in items {
            total += Item.calories
        }
        return total
}
}

Obrigada. Veronica

solução!

Oi Veronica, tudo bem ?

Você esqueceu um pequeno detalhe :

class Meal {
    let name:String
    let happiness:Int
    var items = Array<Item>()

 init(name:String, happiness:Int)  {
        self.name = name
        self.happiness = happiness
    }

    init(name:String, happiness:Int, items: Array<Item>)  {
        self.name = name
        self.happiness = happiness
        self.items = items
    }
   func allCalories() -> Double {
        var total:Double = 0
        for Item in items {
            total += Item.calories
        }
        return total
}
}

Você precisa ter dois construtores, igual o que fiz ali em cima.

Agora consgui fazer funcionar!!! Mas parou de aparecer o nome da meal nova na lista de meals. Obrigada. Verronica

Consegue mostrar para gente o código ?

Já consegui.. Ja estou fazendo a alula seguinte.

Grata. Veronica