Char in NSString umwandeln in Objective-C

In Xcode habe ich mir eben mal eine neue Konsolen Applikation geschrieben (mittels Foundation Framework) und bin auf das Problem gestoßen, dass Zeichenketten (so mein Wissen) ja mittels von C noch bekanntem ’scanf‘ von der Standardeingabe eingelesen werden (können).
Da aber sämtliche Klassen und Methoden auf NSStrings zurückgreifen, bekommt man relativ schnell Probleme, sofern eingelesene Strings dann in Char Variablen abgespeichert wurden.

Ausgangssituation

Mein Quellcode sollte von der Tastatur eine Zeichenkette einlesen. Dies geschieht mittels:

char name[250];
NSLog(@"Name: ");
scanf("%s", name);

Da jetzt aber die Implementierung der Klasse folgendes vorsieht, bekomt man bei dem char name ein Problem:

- InitWithName: (NSString*) newname {
if (self = [super init]){
    name = newname;
}
    return self;
}

Das Problem besteht darin, dass InitWithName einen Pointer auf ein NSString Array erwartet. Vorliegend ist aber nur ein Char Array.

Lösung

Problemlos kann aber das Char Array in ein NSString Objekt umgewandelt werden.

NSString* NSName = [NSString stringWithUTF8String:name];

Somit klappt dann auch der Methodenaufruf problemlos

[newObject InitWithName:NSName];
Dieser Beitrag wurde unter Mac OS X abgelegt und mit , , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.