title: Optional argument identifiers in Swift
body: <p>I'm learning iOS and Swift development and have a question about function argument identifiers. This is the signature for <code>UIButton.setText</code> as it appears when Xcode suggests the type-ahead:</p>
  
  <pre><code>// Xcode type-ahead signature:
  sender.setTitle(title: String?, forState: UIControlState)
  </code></pre>
  
  <p>And when I copy and paste that it inserts some more information, like this: </p>
  
  <pre><code>// Actual signature from documentation:
  sender.setTitle(&lt;#title: String?#&gt;, forState: &lt;#UIControlState#&gt;)
  </code></pre>
  
  <p>My usage is like this:</p>
  
  <pre><code>sender.setTitle("Hello World", forState: UIControlState.Normal)
  </code></pre>
  
  <p>As you can see, <strong>the <code>forState</code> argument identifier is required, but the <code>title</code> identifer is not. How can I determine this from Xcode's type-ahead method signature suggestion?</strong> Does the <code>?</code> in <code>title: String?</code> denote the identifier as optional? If not, what does that do?</p>