title: In Swift, what does the ! symbol mean in a function signature?
body: <p>In a Swift function signature, what does the <code>!</code> after an argument imply? More specifically, does it mean the argument needs to be unwrapped before it is passed in or that it gets unwrapped (automatically) as it is passed in.  Here is an example:</p>
  
  <pre><code>func annotationButtonTUI(sender: UIButton!) { }
  </code></pre>
  
  <p>In this case the function is a target for a UIButton so whatever happens with the <code>!</code> is happening automatically.</p>
  
  <p>My thought is it means you can expect an unwrapped <code>sender</code> object so you don't need to try an unwrap it.</p>