Char in NSString umwandeln in Objective-C

[E-Commerce] IT-Consulting and Development in Mühldorf am Inn

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:
[code lang=“cpp“]char name[250];
NSLog(@“Name: „);
scanf(„%s“, name);[/code]

Da jetzt aber die Implementierung der Klasse folgendes vorsieht, bekomt man bei dem char name ein Problem:
[code lang=“cpp“]- InitWithName: (NSString*) newname {
if (self = [super init]){
name = newname;
}
return self;
}[/code]

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.
[code lang=“cpp“]NSString* NSName = [NSString stringWithUTF8String:name];[/code]
Somit klappt dann auch der Methodenaufruf problemlos
[code lang=“cpp“][newObject InitWithName:NSName];[/code]

 

Schreibe einen Kommentar

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

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.