Was ist der Unterschied zwischen "?" Und "!" In Swift?

Ich weiß was "?" und "!" meine, wenn ich Variablen in Swift deklariere. Aber was bedeuten sie, wenn using diese Variablen? Zum Beispiel in diesem Code:

var attachment: NSTextAttachment = NSTextAttachment()
attachment.image = UIImage(named: "placeholder.png")
attachment.image!.size ... // or attachment.image?.size ...

Was ist der Unterschied zwischenattachment.image!.size undattachment.image?.size?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage