title: NSString's initWithData:encoding: return type issue
body: <p>I have a couple of lines of trivial code such as the following:</p>
  
  <pre><code>NSData *dataReply;
  NSString *stringReply;
  dataReply = [NSURLConnection sendSynchronousRequest:request returningResponse:&amp;response error:&amp;error];
  stringReply = [[NSString alloc] initWithData:dataReply encoding:NSUTF8StringEncoding];
  </code></pre>
  
  <p>The problem here is, initWithData:encoding: does not return an instance of NSString as the documentation claims it does. I've tried doing an explicit cast using (NSString *) as well without much luck. This is giving me compiler warnings when I try to pass the stringReply to a method I've written with type mismatches. Given I treat all warnings as errors, I'd really like to understand what stringReply is being returned as and how I can enforce it to be of type NSString.</p>