Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Uso de "if let"s é boa ou má prática?

Bom dia,

Ao invés de fazer como o instrutor, preferi garantir que as variáveis não seriam utilizadas caso fossem nulas por usar "if let"s. Por algum motivo achei que fica mais claro de entender...

@IBOutlet var nameField : UITextField?
@IBOutlet var caloriesField : UITextField?

    @IBAction func addNewItem() {
        if let name = nameField!.text {
            if let calories = Double(caloriesField!.text!) {
                let item = Item(name: name, calories: calories)
                if let delegate = delegate {
                    delegate.add(item)
                }
            }
        }
        if let navigation = navigationController {
            navigation.popViewController(animated: true)
        }
    }

Posso fazer dessa maneira sem pensar duas vezes, ou é melhor fazer validações como a do vídeo?

1 resposta
solução

Oi Nicolas,

Ótima prática em Swift utilizar if let.

O único cuidado que teria é em relação ao encadeamento de ifs. Se você precisar fazer muitas verificações, talvez compense utilizar um if para tentar extrair os valores das variáveis.. por exemplo:

if let name = nameField.text, let calories = Double(caloriesField.text), ...

Outro detalhe importante no código acima é que depende muito da regra de negocio do seu app. Por exemplo se você precisar de todas as variáveis para prosseguir, funciona perfeitamente. Se você precisar de apenas uma ou outra e tentar verificar tudo na mesma linha, pode ser que não entre no if por que uma das variáveis (que talvez você não precisasse nesse momento) esteja nula.

Resumindo, pode utilizar if let a vontade, o próprio swift indica o uso para extrair valores opcionais.

Abs.