Corda rápida vs. corda! vs. string?

eu liesta pergunta e algumas outras perguntas. Mas eles não têm relação alguma comminha pergunta

ParaUILabel se você não especificar? ou! você receberá um erro:

A propriedade @IBOutlet possui um tipo não opcional 'UILabel'

$9 pergunta e algumas outras perguntas. Mas eles não têm relação alguma com10$

fix-it Adicionar? para formar o tipo opcional UIlabel?
fix-it Adicionar! para formar o tipo opcional implicitamente desembrulhado UIlabel?

No entanto, para string, você pode apenas digitarstring sem? ou! e você não receberá um erropor que é que?

O que acontece se oname não está definido? Então teríamos umnil não está usando?, ! eRápido tudo sobre a satisfação da 'segurança de tipo'?

Exemplo:

struct PancakeHouse {
  let name: String // this doesn't have '?' nor '!'
  let photo: UIImage?
  let location: CLLocationCoordinate2D?
  let details: String
}

Minha maior confusão é quando queremosnão use Opcional?

questionAnswers(4)

yourAnswerToTheQuestion