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

Aula 6.4

Boa tarde galera, estou tentando fazer meu código funcionar, porém ele quebra toda hora, fiz exatamente como está no video.

import UIKit

class ViewController: UIViewController
 {

    @IBOutlet var nameField: UITextField?
    @IBOutlet var happinessField: UITextField?

    @IBAction func add(){

        if nameField == nil || happinessField == nil{
            return
        }


        let name = nameField!.text;
        let happiness = happinessField!.text

        if happiness == nil {
            return
        }

        let meal = Meal(name: name, happiness: happiness!);

        println("eaten: \(name) \(happiness)!")
    }


}
4 respostas

Olá, qual a mensagem de erro recebida?

Algumas dicas para ajudar:

  • Verificar o método init da sua classe Meal e conferir se o nome dos parâmetros na declaração desse método é o mesmo na inicialização do objeto meal, na linha: "let meal = Meal(name: name, happiness: happiness!)". Logo sua classe Meal deverá conter um init com os parâmetros name e happiness;

  • Utilizar a função toInto() no happinessField, pois se seu método init da classe Meal estiver igual ao das vídeo-aulas ele recebe um inteiro, logo, se faz necessário a conversão de String para Int. Sua linha ficaria assim: "let happiness = happinessField!.text.toInt()"

Provavelmente foi editor de texto do Alura que engoliu os caracteres, mas observei que o println não está de acordo com a sintaxe do Swift:

println("eaten: (name) (happiness)!)

Para imprimir o valor das constantes name e happiness na interpolação de string com println, deve ser utilizado uma contrabarra, ou barra invertida.

No caso, teria que ser:

println("eaten: \(name) \(happiness)!)

String Interpolation: https://developer.apple.com/library/prerelease/mac/documentation/Swift/Conceptual/Swift_Programming_Language/StringsAndCharacters.html#//apple_ref/doc/uid/TP40014097-CH7-ID292

Se foi o editor, me desculpe :)

solução!

Oi Igor,

Se você estiver com uma versão mais recente do Xcode, algumas coisas mudaram na sintaxe do Swift.

Uma das mudanças foi o próprio método println que agora é só print.

Estamos atualizando o curso com a versão 2.0 do Swift e em breve estará disponibilizado no site.

Abraço

Igor,

Conseguiu solucionar a sua dúvida?

Abraço!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software