Unbekannte Klasse in der Schnittstellenbuilder -Datei [Duplikat
-
26-09-2019 - |
Frage
Diese Frage hat hier bereits eine Antwort:
Ich habe eine ziemlich einfache iPhone -App erstellt. Dann dachte ich mir, ich würde eine iPad -Version (universell) der App erstellen. Ich habe versucht, die Option "Upgrade" zu verwenden, und das hat nicht gearbeitet. Also habe ich eine separate universelle App erstellt und die XIB -Dateien in mein Projekt kopiert. Das hat auch nicht geklappt, also habe ich die XIB -Dateien (und ihre zugehörigen .M- und .h -Dateien gelöscht.
Wenn ich nun die iPhone -Version ausführe, gibt es mir die unbekannte Klasse iPadSample1AppDelegate in der Schnittstellenbuilder -Datei. Fehler und UiSplitViewController werden nur beim Ausführen unter UiUSerInterfaceIdiompad unterstützt und dann beendet es. Also stellte ich mich in den Schnappschreiber wieder her, bevor ich mich auf das iPad-Abenteuer stellte ... Ich bekomme den gleichen Fehler. Ich habe die Xcode -Suche und die Spotlight -Suche ausprobiert. Es gibt keinen Hinweis auf diese Klasse oder den UiSplitViewController überall in meinem Projekt, aber aus irgendeinem Grund glaubt XCode, dass es vorhanden ist.
Gibt es eine Möglichkeit, eine Referenz zu entfernen, die es nicht gibt? LOL
Aktualisieren:
Es kann etwas damit zu tun haben, dass meine Xcode -Umgebung abgebockt wird. Nachdem ich hier ein paar andere Beiträge gefunden hatte, habe ich ein sauberes All / Build / Touch ausprobiert und als ich den Touch machte, bekam ich den folgenden Fehler in Xcode:
Unbefundte Ausnahme:
-[xcBuildLogWarningMessage SetFilelocations:]: Nicht anerkannter Selektor an Instanz 0x2014dd0a0 gesendet
Wie auch immer, Xcode neu zu installieren, ohne alles andere durcheinander zu bringen?
Lösung
Es stellt sich heraus, dass die Bits auf dem iPhone -Simulator mit Xcode nicht synchronisiert waren. Ich habe ein "Inhalt und Einstellungen zurücksetzen" und alles funktioniert :) Wer wusste es?
Andere Tipps
Wenn Sie Phasen in Ihren Zielen erstellen, sehen Sie Kompilierquellen. Stellen Sie sicher, dass jede der benötigten M -Dateien aufgeführt ist. Wenn nicht, fügen Sie es einfach hier hinzu und die Warnung sollte verschwinden.
Klicken Sie mit der rechten Maustaste auf Storyboard -> Öffnen Sie als -> Quellcode
Finden Sie Ihren unbekannten Klassennamen in der Storyboard -Quelldatei. Dies kann daran liegen, dass Sie versehentlich einen benutzerdefinierten Klassennamen für eine Ihrer UIView -Unterklasse zugewiesen haben.
Ich habe einige Nachforschungen angestellt und fand das heraus
for my case
Ich muss nur mit der rechten Maustaste klicken, um die Datei im Projekt Navigator zu beschweren.
Wählen View/Utilities/Show File Inspector.
Und aus irgendeinem Grund die Target Membership
wurde nicht ausgewählt.
Deshalb sagt der Linker, dass er die Existenz der Klasse nicht kennt.
Ich habe nur angegriffen, um es zu wählen, und alles funktioniert wie ein Zauber.
Ich hatte das gleiche Problem, aber es wurde nicht durch die obige Lösung gelöst. Am Ende habe ich es zum Laufen gebracht, indem ich den Eintrag "Main -Storyboard -Datei -Basisname (iPad)" aus meiner Info.plist -Datei entfernt habe.
Was es für mich behoben hat, war, den AP im Simulator zu "löschen" und wieder umgebaut.
Wahrscheinlich wurde diese Klasse in den lokalen Einstellungen im iPhone -Simulator noch umgeleitet.
In meinem Fall erschien dieser Fehler nach dem Refactoring -Klassennamen. Irgendwie hat sich der Klassenname in der .xib -Datei nicht geändert. Ich habe dieses XIB-Datei in SMSEDIT geöffnet und alle OldClassvc durch NewClassVC ersetzt. Dann habe ich XIB-File und das Projekt vor Neubau gerettet. Projekt läuft gut.
Wenn Sie Cocoa Pods verwenden, ziehen Sie den Abschnitt ".Framework/.a -Dateien in den Abschnitt" Link Binary with Bibliotheken "in den Projekten.