2013-03-06 8 views
7

Ho visto domande nello stackoverflow che convertono unichar in NSString ma ora vorrei fare il contrario.Conversione di NSString in unichar in iOS

Come faccio?

bisogno di un orientamento .. Grazie

Ad esempio, ho un array di stringhe: [@"o",@"p",@"q"];

Questi sono stringhe all'interno. Come faccio a riconvertirlo in unichar?

+0

Intendi un array di 'unichar'? C'è un metodo su 'NSString' che lo farà. –

+0

Possibile duplicato di [questa domanda] (http://stackoverflow.com/questions/1354388/unichar-and-nsstring-how-interchangeable-are-these) – bdesham

risposta

9

Quanto segue opera finché il primo carattere non è in realtà due caratteri composti (in altre parole fintanto che il personaggio non ha un valore maggiore di Unicode \ UFFFF):

unichar ch = [someString characterAtIndex:0]; 
1

È possibile convertirlo in un buffer in NSData:

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

Questo produce un risultato diverso rispetto al semplice cast del valore restituito di ' [string cStringUsingEncoding: NSUnicodeStringEncoding] '? –

+0

@SeamusCampbell la variante 'NSData' non è terminata – justin