title: How to convert byte array to NSString
body: <p>I am reading data from a TCP/IP stream and am successfully receiving a byte array from the pre-existing server. I am now trying to find a way to convert that array to an <code>NSString</code>. I have found several examples, but am having a hard time getting my desired results.</p>
  
  <pre><code>NSData *data=[[NSMutableData alloc] init];
  
  uint8_t buffer[1024];
  unsigned int len=0;
  
  len=[(NSInputStream *)stream read:buffer maxLength:1024];
  if(len&gt;0){  
  
      [data appendBytes:&amp;buffer length:len];
      //BYTE ARRAY OBTAINED OK!!
      ///////////////////////////////////////////////////////
  
      //METHOD #1 - Yields 'nil'
      NSString *string = [[NSString alloc] initWithData:data
                                               encoding:NSUTF8StringEncoding];
  
      ///////////////////////////////////////////////////////
      //METHOD #2 - Log prints OK, but messageString says
      //'invalid' in debugger, and get warnings all over the 
      //place. I know this is wrong, but it semi-works :)
  
      size_t length=[data length];
      unsigned char aBuffer[length];
      [data getBytes:aBuffer length:length];
      aBuffer[length - 1]=0;
  
      NSString *messageString =aBuffer; 
      NSLog (@"%s",messageString);
  
      ///////////////////////////////////////////////////////
  
  }else{
      NSLog(@"No Buffer");
  }
  </code></pre>
  
  <p>Please help! Any assistance provided is GREATLY appreciated.</p>