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.
>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.
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.
Tags und Links objective-c cocoa 3d