1
resposta

Metodo Classe - erro no print

Olá pessoal,

Estou recebendo erro: Instance member 'totalDeCalorias' cannot be used on type 'Refeicao3'; did you mean to use a value of this type instead?

Meu código:

class Refeicao3 {
    //MARK: Atributos
    var nome: String
    var felicidade: String
    var itens: [Item] = []

   init(con_nome: String, con_felicidade: String) {
        self.nome = con_nome
        self.felicidade = con_felicidade
    }

    func totalDeCalorias() -> Double {
        var totalCalorias = 0.0
        for func_item in itens {
            totalCalorias += func_item.calorias
        }
        return totalCalorias
    }
}

class Item {

    var nome: String
    var calorias: Double


    init(con_nome: String, con_calorias: Double) {
        self.nome = con_nome
        self.calorias = con_calorias
    }
}



let arroz = Item(con_nome: "Arroz", con_calorias: 51.0)
let feijao = Item(con_nome: "Feijao", con_calorias: 90.0)
let contraFile = Item(con_nome: "Contra File", con_calorias: 287.0)

let refeicao = Refeicao3(con_nome: "Almoço", con_felicidade: "5")
refeicao.itens.append(arroz)
refeicao.itens.append(feijao)
refeicao.itens.append(contraFile)

print(refeicao.nome)
if let primeiroItemLista = refeicao.itens.first {
    print(primeiroItemLista.nome)
}

print(Refeicao3.totalDeCalorias())

Não encontrei erro até o momento, podem me ajudar a entender o que está acontecendo? Segui o que estava na aula.

1 resposta

Olá Wellington, tudo bom?

Quando o erro diz Instance member 'totalDeCalorias' cannot be used on type 'Refeicao3'; did you mean to use a value of this type instead?, ele quer dizer que você não pode chamar o método totalDeCalorias direto da classe Refeicao3, você precisa usar um objeto desse tipo para chamar o método. Sendo assim, o erro está na última linha:

print(Refeicao3.totalDeCalorias())

Você já tem um objeto Refeicao3que você criou umas linhas para cima, o refeicao. Então é só usar o objeto no lugar da classe e a linha vai ficar assim:

print(refeicao.totalDeCalorias())

Fazendo isso, vai resolver o problema. Espero que tenha entendido o erro e que eu tenha ajudado!! :)