I'm confused with the use of the following methods of NSString
initWithData:encoding:Returns an NSString object initialized by converting given data into Unicode characters using a given encoding.
initWithBytes:length:encoding:Returns an initialized NSString object containing a given number of bytes from a given buffer of bytes interpreted in a given encoding.
And their usage is like:
NSMutableData *someData = //some data;
NSString *someString = nil;
someString= [[NSString alloc] initWithData:someData encoding:NSUTF8StringEncoding];someString=[[NSString alloc] initWithBytes:[someData mutableBytes] length:[someData length] encoding:NSUTF8StringEncoding];
NSData class is a wrapper for byte buffers, then what is the difference between these similiar methods. Please help me to understand the difference.