2012-04-01 11 views
2

Ich habe eine App, die seit einiger Zeit gut auf dem iPhone-Simulator läuft. Vor kurzem entschied ich, dass ich das Datenmodell und verwandte Klassen in einem anderen Projekt wiederverwenden wollte - also zog ich sie von diesem Projektfenster zum anderen und sagte dann Xcode, es nicht zu kopieren, nur um Referenzen zu erstellen. Am Anfang funktionierte das nicht, also bin ich durch eine Reihe von Reifen gesprungen, um zu versuchen, es zu reparieren (ich frage vielleicht mehr darüber in einem anderen Beitrag). Nach all dem habe ich neu kompiliert und versucht, die Original-App zu starten - und es funktioniert nicht mehr. Bei weiteren Ermittlungen habe ich festgestellt, dass ich beim Kompilieren der ursprünglichen App ein Bündel mit einem .momd-Paket erhalte, das aber nur eine Datei mit der Versionsinfo.plist enthält - keine .mom-Datei, keine .omo-Datei wie ich. Ich erwarte zu sehen. Ich kann mich nicht daran erinnern, Änderungen an der ursprünglichen App vorgenommen zu haben. Ich bekomme keine Warnungen. Ich bekomme nur ein unvollständiges .momd-Paket (und, nicht überraschend, stürzt meine App jetzt ab).Build erstellt eine .momd in dem Paket, das die .mom-Datei fehlt

Was geht hier vor?

BTW, stürzt die App jetzt mit dieser Nachricht: App beenden aufgrund nicht abgefangene Ausnahme 'NSInvalidArgumentException', Grund: '* - [__ NSArrayM insert: atIndex:]: Objekt kann als gleich Null nicht'

Welche ich erhalte, wenn diese Codezeile ausführen:

self.productRegistry = [[UIManagedDocument alloc] initWithFileURL:self.productRegistryURL]; 

Antwort

3

ich diese eng im Projektverzeichnis mit dem Finder in den Dateipfaden, indem man mehr herausgefunden. Im Xcode-Fenster sieht alles normal aus, aber im aktuellen Projektverzeichnis habe ich festgestellt, dass das Paket .datamodeld auf der obersten Ebene des Projektverzeichnisses gelandet ist - auf derselben Ebene wie das Projektpaket selbst. Xcode hat das anscheinend nicht gemocht, aber leider hat es sich nicht beklagen lassen - es hat nur eine partielle Build-Ausgabe erstellt. Nachdem ich das .datamodeld-Paket in den gleichen Ordner wie den Rest des Projektcodes verschoben hatte, funktionierte alles einwandfrei.

Dies scheint nur eine Eigenart zu sein. Ich würde erwarten, dass Xcode entweder sehen würde, dass alles in Ordnung ist und korrekt baut, oder dass es sehen würde, dass die Dinge nicht ganz so waren, wie sie sein sollten und scheitern. In diesem Fall wurde es nicht korrekt erstellt, aber es war still darüber.

Ich hoffe, diese Antwort hilft jemand anderem eines Tages.

+0

reorganisierte ein Projekt für Abhängigkeiten und hatte das gleiche Problem. Voller Clean und Build, keine Beschwerden von Xcode 4.4.1, aber keine .mom und .omo, was zu einem Laufzeitfehler mit MagicalRecord führt. Danke – Neil