Criei a função Adicionar() exatamente conforme a aula, mas ao fazer o teste pelo emulador, quando eu preencho o Label "Felicidade" mas não coloco nada no label "Nome da Refeição", depois clico no botão Adicionar, o guard let criado na função entende que o campo foi preenchido de alguma pois ele não trava a função. Assim, uma refeição sem nome é adicionada. Fiz um teste para verificar se a variável Nome está vazia e ele retorna um true. Alguém sabe me dizer se isto é um erro ou se deveria mesmo acontecer? O aplicativo não da crash, ele apenas adiciona um espaço vazio como Nome da Refeição.
import UIKit
class ViewController: UIViewController {
@IBOutlet var nomeTF:UITextField?
@IBOutlet var felicidadeTF:UITextField?
@IBAction func Adicionar (){
guard let nomeDR = nomeTF?.text else {
return
}
guard let felicidadeDR = felicidadeTF?.text, let felicidade = Int(felicidadeDR) else {
return
}
let refeicao = Refeicao(nome: nomeDR, felicidade: felicidade)
print("Refeição adicionada com sucesso")
if refeicao.nome.isEmpty {
refeicao.nome = "Não foi adicionado nome a esta refeição"
}
print(refeicao.nome)