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

Aula 6.4 - let happinessField!.text.toInt()

Ola,

Gostaria de saber o porque da instrução abaixo (aula 6.4) não ser reconhecida no meu Xcode. O mesmo informa que esta incorreto.

let happiness = happiness!.text.toInt()
`

So conseguir fazer funcionar dessa forma:

let happiness = Int((happiness?.text)!)

```

obs: estou utilizando o Yosemite e o XCode 7 . Sera alguma mudança ?

9 respostas

Tive o mesmo problema e quando coloco

let name = nameField.text! tb nao funciona.

Ola Rafael, Acredito que a causa do erro seja devido a versão do Swif. Acredito que a que foi utilizada no curso da Alura foi a versão 1.x e a nossa deve ser a versão 2.x.

entendi av! Estou muito confuso nisso! kkkkkk obrigado

Tenho um método muito parecido, com adaptações, como exemplo. Veja se ajuda.

@IBAction func salvar(){

        if nomeField == nil || avaliacaoField == nil {
            return;
        }

        //recupera o valor do campo input
        let nome = nomeField!.text
        let avaliacao = Int((avaliacaoField?.text)!)

        if avaliacao == nil {
            return
        }


        let estabelecimento = Estabelecimento(nome: nome!, avaliacao: avaliacao!)

        print("salvo \(estabelecimento.nome) \(estabelecimento.avaliacao)");
    }

Av, mesmo assim ainda esta dando erro. Sera que tem alguma forma de voltar o swift para o 1? Ou sera que ja e melhor ir me adaptando para esse 2?

faça o seguinte, mande-me seu codigo inteiro. Vou tentar reproduzir no meu ambiente e tentar descobrir o motivo do erro.

solução!

Olá meninos!

Realmente o que ocorreu foi a mudança de sintaxe do Swift.

Pra o código funcionar na versão do Xcode 7 ele deve ser o seguinte:

Declaração dos outlets:

    @IBOutlet var nameField: UITextField!
    @IBOutlet var happinessField: UITextField!

E o método que salva a refeição:

    func getMealFromForm() -> Meal? {
        if nameField == nil || happinessField == nil {
            return nil
        }

        let name = nameField.text!
        let happiness = Int(happinessField.text!)

        if happiness == nil {
            return nil
        }

        // restante do código
    }

Abraço!

Entendi, obrigado pela ajuda! mas o meu IBAction entraria aonde?

Opa Rafael,

O seu método salvar é o meu getMealFromForm(). Ele é seu @IBAction.