title: Ambiguous use of "init" with optional arguments in Swift 2
body: <p>I've just updated my code from Swift 1.2 to Swift 2.1. The project was fully-functioning with previous version of Swift, but now I'm seeing "Ambiguous use of 'init'" errors. Each occurrence of this error seems to be caused by the use of optional arguments in the constructor. I've even managed to reproduce this issue in Xcode Playground with the following simplified code using the same pattern:</p>
  
  <pre><code>class Item : UIView {
      override init(frame: CGRect = CGRectZero) {
          super.init(frame: frame)
      }
  
      required init?(coder aDecoder: NSCoder) {
          fatalError("init(coder:) has not been implemented")
      }
  }
  
  let i = Item()             # Ambiguous use of 'init(frame:)'
  </code></pre>
  
  <p>However, I still don't understand why Swift 2.1 now has a problem with this pattern, or what the alternative should be. I've tried searching for this, but all I've stumbled upon was "ambiguous use" errors for other (non-constructor) methods due to method renaming or signature changing, neither of which is the case here.</p>