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.
Well, you may have some raw bytes not already wrapped in an
NSDataobject. In that case you can useinitWithBytes:length:encoding:without having to wrap it first.