2011-10-12 62 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

相關問題