Swift String vs. String! String?

Ich habe gelesenDie Frage und einige andere Fragen. Aber sie haben nichts mit @ zu tumeine Frag

ZumUILabel wenn Sie kein @ angeb? oder! Sie erhalten eine solche Fehlermeldung:

@ Die IBOutlet-Eigenschaft hat den nicht optionalen Typ 'UILabel'

Welche dann Xcode gibt Ihnen2 Entscheidungen, um es zu beheben, können Sie tun:

fix-it Hinzufügen? um den optionalen Typ UIlabel zu bilden?
fix-it Hinzufügen! bildet man den implizit ausgepackten optionalen Typ UIlabel?

Für Zeichenfolge können Sie jedoch einfach @ eingebestring ohne? oder! und du wirst keinen Fehler bekommenWarum das

Was passiert, wenn dasname ist nicht gesetzt? Dann hätten wir einnil verwendet kein?, ! undSchnel Alles über das Erfüllen von "Typ-Sicherheit"?

Beispiel

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

Meine große Verwirrung ist, wann wir wollennich use Optional?

Antworten auf die Frage(8)

Ihre Antwort auf die Frage