2013-03-06 3 views
7

J'ai vu des questions dans stackoverflow qui convertissent unichar en NSString mais maintenant je voudrais faire l'inverse.Conversion de NSString en unichar sous iOS

Comment faire?

besoin de conseils .. Merci

Par exemple, j'ai un tableau de chaînes: [@"o",@"p",@"q"];

Ce sont des chaînes à l'intérieur. Comment puis-je le convertir en unichar?

+0

Vous voulez dire un tableau de 'unichar'? Il y a une méthode sur 'NSString' qui fera cela. –

+0

Copie possible de [cette question] (http://stackoverflow.com/questions/1354388/unichar-and-nsstring-how-interchangeable-are-these) – bdesham

Répondre

9

Ce qui suit fonctionne aussi longtemps que le premier caractère est pas en fait deux caractères composés (en d'autres termes, tant que le personnage n'a pas de valeur supérieure à Unicode \ uFFFF):

unichar ch = [someString characterAtIndex:0]; 
1

Vous pouvez le convertir en tampon dans NSData:

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

Est-ce que cela produit un résultat différent de simplement lancer la valeur de retour de ' [string cStringUsingEncoding: NSUnicodeStringEncoding] '? –

+0

@SeamusCampbell la variante 'NSData' n'est pas terminée – justin