Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

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