将数据转换为文本并在UITextField中显示

时间:2011-10-12 00:32:16

标签: objective-c cocoa-touch nsstring uitextfield nsdata

我有一个名为objNSData的NSData abject,我可以将一个字符串转换为这个NSData对象。我无法弄清楚如何将NSData转换回字符串,甚至可能吗?我知道它可以在Visual Basic中使用诸如

之类的命令来完成
Data.ToString

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

2 个答案:

答案 0 :(得分: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 :(得分:1)

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

但我认为你拥有的是某种特征数据。是ASCII吗? UTF8? UTF-16?克林贡?

如果它是UTF8,你会使用类似

的东西
NSString* theString = [NSString stringWithUTF8String:[yourDataObject bytes]];

但是有很多变量,例如数据空终止?