我对NSString
initWithData:encoding:
返回通过将给定数据转换为初始化的NSString对象 使用给定编码的Unicode字符。
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
类是字节缓冲区的包装器,那么这些类似方法之间的区别是什么。请帮助我理解其中的差异。
答案 0 :(得分:3)
好吧,你可能有一些尚未包含在NSData
对象中的原始字节。在这种情况下,您可以使用initWithBytes:length:encoding:
而无需先将其包装。