Sscanf-Äquivalent in Objective-C

8

Ich schreibe gerade einen Wavefront-OBJ-Loader in Objective-C und ich versuche herauszufinden, wie man Daten von einem NSString in ähnlicher Weise wie die Funktion sscanf () in C analysiert.

OBJ-Dateien definieren Flächen in x-, y-, z-Tripel von Vertices, Texturkoordinaten und Normalen wie:

%Vor%

Ich bin im Moment nicht um Texturkoordinaten besorgt. In C wäre ein einfacher Weg, diese Zeile zu parsen, eine Aussage wie:

%Vor%

Offensichtlich können NSStrings nicht in einem sscanf () verwendet werden, ohne zuerst in eine C-artige Zeichenkette umgewandelt zu werden, aber ich frage mich, ob es eine elegantere Art gibt, dies ohne eine solche Umwandlung durchzuführen.

>     
user1034196 11.04.2012, 04:01
quelle

2 Antworten

9

Die Klasse NSScanner kann Analysieren von Zahlen in Zeichenfolgen, obwohl sie nicht als Ersatz für sscanf verwendet werden können.

Bearbeiten : Hier ist eine Möglichkeit, es zu verwenden. Sie können auch / in die Liste der zu überspringenden Zeichen setzen.

%Vor%     
Dondragmer 11.04.2012 04:06
quelle
5

Um von einem NSString zu einem C-String (char *) zu wechseln, verwenden Sie

%Vor%

Alternativ

%Vor%

Bietet Zugriff auf die Funktion sscanf ().

Um in die andere Richtung zu gehen, verwenden Sie

%Vor%

Oder

%Vor%

Von einem reinen ObjC-Standpunkt aus bietet NSScanner die Methoden -scanInteger oder -scanFloat , um Intets und Floats aus einer Zeichenkette zu ziehen.

%Vor%     
CodaFi 11.04.2012 04:10
quelle

Tags und Links