Ich habe gerade mogenerator + xmo'd auf meiner Entwicklungsmaschine installiert und möchte damit anfangen, damit zu spielen. Die einzigen Anweisungen, die ich wirklich online finden konnte, waren von einem früheren SO-Post , und diese nicht arbeite nicht mit XCode 4 (oder zumindest ⌘ Ich lese keine Metadaten mehr und ich weiß nicht wie).
Damit alles funktioniert und funktioniert, müssen Sie xmod
in den Kommentaren von .xcdatamodel hinzufügen (wo auch immer) und die Klassen werden ab diesem Zeitpunkt generiert / aktualisiert?
Während ich versuchte, diese Antwort selbst zu finden, fand ich MOGENerator und Xcode 4 Integrationsleitfaden auf esenciadev.com. Diese Lösung ist keine Push-Button-Integration, aber es funktioniert. Der Link hat detaillierte Anweisungen, aber generell:
Wenn Sie Ihr Projekt erstellen, führt das Skript MOGENerator für alle .xcdatamodel-Dateien in Ihrem Projektverzeichnis aus. Wenn das Skript nach dem Build neue Klassendateien generiert, müssen Sie sie manuell zu Ihrem Projekt hinzufügen. Nachfolgende Builds erinnern sich an vorhandene MO-generierte Dateien.
Vorbehalte:
Die Build-Regel des Beispiels geht davon aus, dass Sie die Skripte in einen / scripts / file-Ordner innerhalb Ihres Projektverzeichnisses stellen. Wenn ich dieses Detail ignorierte (indem ich einen Ordner Projekt , aber keinen Ordner Datei erstellte), kam es zu einem Build-Fehler. Stellen Sie sicher, dass die Erstellungsregel auf den Dateispeicherort des Skripts zeigt.
Das Skript verwendet das Argument --base-class
. Sofern Ihre Modellklassen keine Unterklassen einer benutzerdefinierten Klasse (nicht NSManagedObject) sind, müssen Sie dieses Argument aus dem Skript löschen. Zum Beispiel,
Nun, dass Xcode 4 veröffentlicht wurde Werfen Sie einen Blick auf die Seite Probleme für den mogenerator
Nachdem ich Änderungen an meiner Modelldatei vorgenommen habe, starte ich den mogenerator einfach manuell vom Terminal aus. Mit Xcode 4 und ARC macht dies den Trick:
%Vor%Vielleicht verwende ich irgendwann Build-Skripte, aber der Terminal-Ansatz ist zu einfach, um etwas zu vermasseln.
Ich habe ein Skript in den "Build Phases" gefunden, um zuverlässiger zu sein als die "Build Rules".
Wählen Sie unter "Build Phases" für Ihr Target die Schaltfläche "Run Script hinzufügen". Ziehen Sie das Skript run nach oben, damit es vor dem Kompilieren der Quellen ausgeführt wird.
Denken Sie daran, dass die eigentlichen Datenmodelldateien (.xcdatamodel) in einem Paket (.xcdatamodel) enthalten sind und Sie nur das neueste Datenmodell für Ihr Projekt kompilieren müssen.
Fügen Sie dem Skript Folgendes hinzu (ersetzen Sie den Text gegebenenfalls durch spitze Klammern)
%Vor% Fügen Sie ggf. Optionen zu mogenerator
hinzu. --base-class <your base class>
und --template-var arc=true
sind üblich.
Zufälliger Tipp. Wenn Sie Illegal Instruction erhalten: 4, wenn Sie mogenerator ausführen. Installieren Sie es über die Befehlszeile:
%Vor%Tags und Links xcode core-data mogenerator