2012-10-05 4 views
5

Ich begann mit einer NIB-Datei an einer Ansicht zu arbeiten und beschloss, sie aus meinem Projekt zu löschen, um sie programmatisch zu erstellen. Es gibt keine Erwähnungen über den angeblichen Aufruf der NIB-Datei in meinem Code, und die .XIB-Datei existiert nirgends in einem der Anwendungsverzeichnisse. Hier ist der genaue Fehler, der von der Debug-Konsole auf mich geworfen wird.XCode versucht eine NIB-Datei zu laden, die ich aus dem Projekt gelöscht habe

Ich kann nicht verstehen, warum der xcode immer noch versucht, die NIB zu laden.

+0

Was ist Ihr Code in initWithNibName: Bündel:? – Pfitz

+0

Sie sagen wahrscheinlich, dass die XIB-Datei im Code oder von einem Storyboard oder ähnlichem geladen werden soll. Zeigen Sie uns Ihren Code oder versuchen Sie, das Projekt nach dem NIB-Namen zu durchsuchen. –

+0

Ich erwähne die NIB-Datei nirgendwo im Code. –

Antwort

11

Zum einen die Standard-implementation von initWithNibName:bundle sucht das Bündel für eine Feder Dieser Name teilt denselben Namen wie die Klasse des View-Controllers, wenn Sie als ersten Parameter "nil" übergeben. Aus diesem Grund versucht Ihre App, einen zu laden.

Die Tatsache, dass es einen findet, liegt wahrscheinlich daran, dass die .xib, die Sie in Ihrem Projekt verwendet haben, immer noch in dem Bundle enthalten ist, auf dem der Simulator ausgeführt wird. Xcode hat die Angewohnheit, gelöschte Ressourcen im Simulatorpaket zu belassen, selbst wenn Sie sie aus Ihrem Projekt löschen.

Wenn Sie die App aus dem Simulator löschen, Ihr Xcode-Projekt säubern und erneut ausführen, sollte es aufhören, die Spitze zu laden.

Obwohl dies der Grund ist, warum Ihre App von einer Feder geladen wird, ist dies nicht der Grund, warum sie abstürzt. Der Absturz ist darauf zurückzuführen, dass die alte .xib, die Sie verwendet haben, keine Ansicht mit dem View-Ausgang des View-Controllers verbunden hat.

+1

Danke für die wertvollen Informationen :) –

+1

Ich sehe dieses Verhalten auch, und eine Build Clean funktioniert im Simulator, aber was tun, wenn der Build in freier Wildbahn ist? Einfaches Aktualisieren scheint nicht das jetzt nicht mehr existierende xib vom Telefon zu löschen, obwohl es nicht mehr im Bundle vorhanden ist. Gibt es eine Möglichkeit, es zu bereinigen? Oder muss ich einfach für immer mit seinem Fortbestand leben? Ich möchte meinen Benutzern sicher nicht sagen, dass sie deinstallieren und neu installieren müssen, um ein Update erfolgreich durchzuführen. –

0

Wenn Sie nicht überall nib Namen in der Anwendung verwendet haben, erste Anwendung löschen, Reinigen Sie Ihren Build und testen Sie es, hoffen, dass dies Ihr Problem löst ..

Verwandte Themen