1

我对使用以下方法感到困惑NSString

  1. initWithData:encoding:

    返回通过使用给定编码将给定数据转换为 Unicode 字符来初始化的 NSString 对象。

  2. 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];

NSDataclass 是字节缓冲区的包装器,那么这些类似方法之间有什么区别。请帮助我理解其中的区别。

4

1 回答 1

4

好吧,您可能有一些尚未包装在NSData对象中的原始字节。在这种情况下,您initWithBytes:length:encoding:无需先包装即可使用。

于 2012-12-06T12:13:29.290 回答