title: What should I do with the no-arguments init method if there are not default values?
body: <p>If I implement a class that has no sensible default values, what should I do with the init method which takes no arguments? If there are no valid defaults, the init method has no use.</p>
  
  <p>My gut says that it should release the object and return nil:</p>
  
  <pre><code>- (id)init {
      [self release];
      return nil;
  }
  </code></pre>
  
  <p>...but when reading the <a href="http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSObject_Class/Reference/Reference.html#//apple_ref/occ/cl/NSObject" rel="nofollow">Apple docs</a> for NSObject:</p>
  
  <blockquote>
    <p>Every class must guarantee that the init method either returns a fully functional instance of the class or raises an exception.</p>
  </blockquote>
  
  <p>That confuses me :(</p>