【问题标题】:Literal converstion NSData to NSString [closed]字面转换 NSData 到 NSString [关闭]
【发布时间】:2013-10-04 15:57:42
【问题描述】:

我是 iOS 编程新手,我正在尝试将 NSData 对象的文本表示为 NSString

例如如果 NSData 对象是:

<07010013 01020000 09000100 000199c2>

我想把它转换成:

"070100130102000009000100000199c2"

我该怎么做?

【问题讨论】:

  • 你为什么想要那个?
  • 请在询问之前查询 SO,这是一个庞大的知识库,您可以在学习的同时找到答案
  • “NSData”、“NSString”、“hex”将是搜索此内容时的 3 个有用关键字
  • 感谢您编辑我的帖子和成熟的 cmets

标签: ios nsstring nsdata


【解决方案1】:

HINT#1 //一般答案

NSString 为此目的提供了一个初始化器。可以看more info using the docs here.

NSString * str = [[NSString alloc] initWithData: mynsdata 
                                      encoding:NSUTF8StringEncoding];

假设您使用 ARC。

HINT#2 // 十六进制 nsdata 的答案

int len = [mynsdata length];
NSMutableString *str = [NSMutableString stringWithCapacity:len*2];
const unsigned char *nsdata_bytes = [mynsdata bytes];
for (int i = 0; i < len; ++i) {
    [str appendFormat:@"%02x", nsdata_bytes[i]];
}

【讨论】:

  • 工作就像一个魅力,谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多