Char in NSString umwandeln in Objective-C

E-Commerce IT-Consulting and Development

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.

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen