2013-03-06 555 views
7

我已經看到了將unichar轉換爲NSString的stackoverflow中的問題,但現在我想做相反的事情。將NSString轉換爲iOS中的unichar

我該怎麼做?

需要一些指導..謝謝

例如,我有一個字符串數組:[@"o",@"p",@"q"];

這些字符串內。我如何將它轉換回unichar?

+0

你的意思是一個'unichar'數組? 'NSString'上有一個方法可以做到這一點。 – 2013-03-06 17:38:16

+0

[這個問題]可能的重複(http://stackoverflow.com/questions/1354388/unichar-and-nsstring-how-interchangeable-are-these) – bdesham 2013-03-06 17:39:08

回答

9

下面將工作,只要在第一個字符不是實際上是兩個字符組成(換句話說,只要該字符不具有Unicode值大於\ UFFFF更大):

unichar ch = [someString characterAtIndex:0]; 
1

你可以將它轉換成緩衝區:NSData

if ([string canBeConvertedToEncoding:NSUnicodeStringEncoding]) { 
    NSData * data = [string dataUsingEncoding:NSUnicodeStringEncoding]; 
    const unichar* const ptr = (const unichar*)data.bytes; 
    ... 
} 
+1

這是否產生一個不同的結果,而不僅僅是鑄造返回值' [字符串cStringUsingEncoding:NSUnicodeStringEncoding]'? – 2013-03-06 17:48:18

+0

@SeamusCampbell「NSData」變體未終止 – justin 2013-03-06 17:57:13