我有一个名为objNSData的NSData对象,我可以将字符串转换为此NSData对象。我无法弄清楚如何将NSData转换回字符串,这甚至可能吗?我知道它可以用Visual Basic中的命令完成,例如将数据转换为文本并在UITextField中显示
Data.ToString
在Objective-C中是否有这样的东西?
我有一个名为objNSData的NSData对象,我可以将字符串转换为此NSData对象。我无法弄清楚如何将NSData转换回字符串,这甚至可能吗?我知道它可以用Visual Basic中的命令完成,例如将数据转换为文本并在UITextField中显示
Data.ToString
在Objective-C中是否有这样的东西?
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
好吧,你必须知道数据是什么。如果它是图形数据,它不会形成一个非常漂亮的字符串。
但我认为你所拥有的是某种字符数据。它是ASCII码吗? UTF8? UTF-16?克林贡语?
如果是UTF8,你会使用类似
NSString* theString = [NSString stringWithUTF8String:[yourDataObject bytes]];
但也有很多变数,比如在数据空终止?
...像克林贡编码;) – bryanmac