title: what is the use of - (id)init in NSObject
body: <p>Today I was going through some of the online  codes and I found some <code>NSObject</code> Class.</p>
  <p>Some are having:</p>
  <pre><code>- (id)init
   {  
        self = [super init];
  
        return self;
   
   }
  </code></pre>
  <p>And some doesn't have it.</p>
  <p>Then I also tried this in my Sample Code. I was totally confused. Before this I was thinking that we must write <code>-(id)init</code> method to instantiate a NSObject Class. But now it is working without it.</p>
  <p>Here are my some of my doubts:</p>
  <blockquote>
  <ol>
  <li><p>is -(id)init method really necessary?</p>
  </li>
  <li><p>What happens if we don't use it.</p>
  </li>
  <li><p>If we don't write <code>init</code> method even then my code works. Why?</p>
  </li>
  </ol>
  </blockquote>