我对使用以下方法感到困惑NSString
initWithData:encoding:
返回通过使用给定编码将给定数据转换为 Unicode 字符来初始化的 NSString 对象。
initWithBytes:length:encoding:
从以给定编码解释的给定字节缓冲区返回一个初始化的 NSString 对象,该对象包含给定数量的字节。
它们的用法是这样的:
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 是字节缓冲区的包装器,那么这些类似方法之间有什么区别。请帮助我理解其中的区别。