2013-03-06 13 views
7

Widziałem pytania w stackoverflow, które konwertują unichar na NSString, ale teraz chciałbym zrobić odwrotnie.Konwersja NSString na unichar w iOS

Jak to zrobić?

Potrzebujesz wskazówek .. Dzięki

Na przykład, mam tablicę ciągów: [@"o",@"p",@"q"];

Są to ciągi wewnątrz. Jak przekonwertować go z powrotem na unichar?

+0

Masz na myśli tablicę 'unichar'? Na 'NSString' jest metoda, która to zrobi. –

+0

Prawdopodobny duplikat [tego pytania] (http://stackoverflow.com/questions/1354388/unichar-and-nsstring-how-interchangeable-are-these) – bdesham

Odpowiedz

9

Następujące będzie działać tak długo, jak pierwszy znak nie jest właściwie skomponowane dwa znaki (innymi słowy, dopóki postać nie mają wartość większą niż Unicode \ uFFFF):

unichar ch = [someString characterAtIndex:0]; 
1

Możesz przekonwertować go do bufora w NSData:

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

Czy to daje inny wynik niż tylko rzutowanie wartości zwracanej z ' [ciąg cStringUsingEncoding: NSUnicodeStringEncoding] '? –

+0

@SeamusCampbell Wariant 'NSData' nie jest zakończony – justin