title: What is difference between "?" and "!" in Swift?
body: <p>I know what "?" and "!" mean when I declare variables in Swift. But what do they mean when <em>using</em> these variables? For example, in this code:</p>
  
  <pre><code>var attachment: NSTextAttachment = NSTextAttachment()
  attachment.image = UIImage(named: "placeholder.png")
  attachment.image!.size ... // or attachment.image?.size ...
  </code></pre>
  
  <p>What's the difference between <code>attachment.image!.size</code> and <code>attachment.image?.size</code>?</p>