2013-09-28 32 views
-5

我是新来的iOS编程,我试图让一个NSData对象的文本表示作为的NSString文字converstion的NSData到NSString的

例如,如果NSData对象是:

<07010013 01020000 09000100 000199c2> 

我想将其转换为:

"070100130102000009000100000199c2" 

我该怎么做?

+1

为什么你想呢? – Wain

+1

请求查询SO之前,这是一个巨大的知识库,你会找到答案,而你可以学习 – nzs

+1

“NSData”,“NSString”,“十六进制”将是3个有用的关键字时,搜索此 –

回答

0

提示#1 // 一般的答案

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

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

假设你使用ARC。

提示#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]]; 
} 
+0

工作就像一个魅力,谢谢。 – ikawka