2011-10-12 97 views
0

我有一个名为objNSData的NSData对象,我可以将字符串转换为此NSData对象。我无法弄清楚如何将NSData转换回字符串,这甚至可能吗?我知道它可以用Visual Basic中的命令完成,例如将数据转换为文本并在UITextField中显示

Data.ToString 

在Objective-C中是否有这样的东西?

回答

2

NSData只包含原始字节。你需要一个编码来回。只需要原始字节,除非您知道如何对它们进行编码,否则它是无用的。例如,在这段代码中,我们将字符串转换为字节,然后使用UTF8编码(字符集)将其转换回字符串。

NSString *foo = @"BarBaz"; 
NSData *data = [foo dataUsingEncoding:NSUTF8StringEncoding]; 
NSString *fooString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
NSLog(@"string=%@", fooString); 

此输出:

2011-10-11 20:41:20.708 Craplet[3413:707] string=BarBaz 
1

好吧,你必须知道数据是什么。如果它是图形数据,它不会形成一个非常漂亮的字符串。

但我认为你所拥有的是某种字符数据。它是ASCII码吗? UTF8? UTF-16?克林贡语?

如果是UTF8,你会使用类似

NSString* theString = [NSString stringWithUTF8String:[yourDataObject bytes]]; 

但也有很多变数,比如在数据空终止?

+1

...像克林贡编码;) – bryanmac

相关问题