title: What use does NonObjectiveCBase have?
body: <p>I was reading a <a href="http://airspeedvelocity.net/2015/08/03/arrays-linked-lists-and-performance/" rel="nofollow noreferrer">blog post</a> by @AirspeedVelocity, which mentions the <a href="https://developer.apple.com/library/prerelease/watchos/documentation/Swift/Reference/Swift_ManagedBuffer_Class/index.html#//apple_ref/swift/cl/s:CSs13ManagedBuffer" rel="nofollow noreferrer"><code>ManagedBuffer</code></a> class. And since I had a little bit of a hard time following which properties/methods of this type were being accessed, I decided to check it out a bit.<br>
  The type inherits as follows:
  <a href="https://i.stack.imgur.com/zlZ2P.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/zlZ2P.png" alt="enter image description here"></a><br>
  So naturally I was interested in <a href="https://developer.apple.com/library/prerelease/watchos/documentation/Swift/Reference/Swift_ManagedProtoBuffer_Class/index.html#//apple_ref/swift/cl/s:CSs18ManagedProtoBuffer" rel="nofollow noreferrer"><code>ManagedProtoBuffer</code></a> and <a href="https://developer.apple.com/library/prerelease/watchos/documentation/Swift/Reference/Swift_NonObjectiveCBase_Class/index.html#//apple_ref/swift/cl/s:CSs17NonObjectiveCBase" rel="nofollow noreferrer"><code>NonObjectiveCBase</code></a>, and played around with them a bit.<br>
  My first endeavor was simply creating a class which inherits from <code>NonObjectiveCBase</code>. So I tried it the following way:</p>
  
  <pre><code>class Example: NonObjectiveCBase {
      var value: Int
  
      init(value: Int) {
          self.value = value
      }
  }
  </code></pre>
  
  <p>This gave me the error: <code>super.init isn't called before returning from initializer</code></p>
  
  <p>So of course I simply added a <code>super.init()</code>:</p>
  
  <pre><code>init(value: Int) {
      super.init()
      self.value = value
  }
  </code></pre>
  
  <p>This now gave me the following error though: <code>NonObjectiveCBase' does not have a member named 'init'</code></p>
  
  <p>So I checked the documentation on <code>NonObjectiveCBase</code>, and indeed it has no public methods or properties. The only thing said about it is:</p>
  
  <blockquote>
    <p>A common base class for classes that need to be non-@objc, recognizably in the type system.</p>
  </blockquote>
  
  <p>My question is therefore: What use does <code>NonObjectiveCBase</code> have?
  And furthermore, how could I create a sub-class if I'm supposed to call <code>super.init</code>, which doesn't exist?</p>