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)

Erro → Swift Parte 1 - Aula 1 - Atividade 18

A alternativa correta na atividade, está errada.

Cria-se uma variável do tipo UITextField, utilizando a anotação: @IBOutlet, e com um ponto de exclamação no final, dizendo que a variável é opcional, como em @IBOutlet var nameField : UITextField!

O erro está no seguinte trecho: "...com um ponto de exclamação no final, dizendo que a variável é opcional..."

O ponto de exclamação não indica que a variável é opcional, o que indica que uma variável é opcional é um ponto de interrogação.

Então nesse caso deveria ser: "...com um ponto de exclamação no final, dizendo que a variável não é opcional..."

1 resposta
solução

Oi Bruno, tudo bem?

Os dois ! ? indicam que a variável é opcional.

Diferença:

( ! ) Colocando ponto de exclamação você indica que a variável é opcional e tem valor. Ou seja, se é meio arriscado, pois o compilador não pede para fazer nenhuma verificação para usar o valor da variável. Caso seja nula, o app vai dar crash.

( ? ) Ponto de interrogação indica que a variável é opcional também, porém é um pouco mais seguro, já que o compilador nos ajuda, mostrando que precisamos verificar se a variável tem valor. Podemos utilizar o if let | guard let para realizar essa verificação.

Espero ter ajudado.

Abs.