title: Failable och non-failable initializers prevents me to extend NSView and implement NSCoding
body: <p>I'm having problems implementing a <strong>subclass</strong> to <code>NSView</code> that implements <code>NSCoding</code>.</p>
  
  <p>It seems like the declarations of <code>init(coder: NSCoder)</code> are conflicting in <code>NSView</code> and <code>NSCoding</code>.
  <code>NSView</code> nowadays says it's failable, but <code>NSCoding</code> still says it's non-failable. </p>
  
  <p>When I try to override <code>init(coder: NSCoder)</code> and do my custom initialisation, Xcode 6.1 gives me an error message:</p>
  
  <blockquote>
    <p>A non-failable initializer cannot chain to failable initializer
    'init(coder:)' written with 'init?'</p>
  </blockquote>
  
  <p>How am I supposed to do my custom init of my class? </p>
  
  <p>Here's a silly example where I extend a view and I want to persist an additional click counter for my view. </p>
  
  <pre><code>import Cocoa
  import Foundation
  
  class MyView: NSView, NSCoding {
  
      var clickCounter:Int = 0
  
      required init(coder: NSCoder) {
          super.init(coder: coder)
          coder.encodeObject(self.clickCounter,
                  forKey: "clickCounter")
      }
  
      override func encodeWithCoder(coder: NSCoder) {
          super.encodeWithCoder(coder)
          coder.encodeObject(self.clickCounter, forKey: "clickCounter")
      }
  
      override func mouseDown(theEvent: NSEvent) {
          clickCounter++
      }    
  }
  </code></pre>
  
  <p><img src="https://i.stack.imgur.com/pnd0d.png" alt="enter image description here"></p>