Dieser Fehler hat mich verrückt gemacht, seit ich Xcode (4.6.3) benutze. Immer wenn ich versuche, ein Storyboard-Element mit meinem Code zu verknüpfen, wird folgende Fehlermeldung angezeigt:
Es konnten keine Informationen für die Klasse ViewController gefunden werden.
Dies geschieht auch bei benutzerdefinierten Klassen. Ich habe Methoden ausprobiert wie:
- Delegatendaten löschen.
- Entfernen und erneutes Hinzufügen der Klassen.
- Xcode neu starten.
- Xcode neu installieren.
Ich kann in keinem meiner Projekte bei gedrückter Strg-Taste Verbindungen herstellen, unabhängig von der Klasse. Das gleiche Problem tritt bei einer brandneuen Vorlagenanwendung auf. Wenn ich den Code manuell eingebe und dann bei gedrückter Strg-Taste ziehe, kann ich eine funktionierende Verbindung herstellen, diese jedoch nicht automatisch hinzufügen. Nichts, was ich bisher im Internet finden konnte, hat geholfen. Irgendwelche Hinweise?
NSLog()
toviewDidLoad:
Antworten:
Was dieses Problem für mich gelöst hat, war das Löschen der Klasse aus dem Projekt.
Schritte:
Dies scheint Xcode zu zwingen, die Klasse wieder mit dem Storyboard zu verknüpfen.
Hinweis: Bei mir hat folgendes nicht funktioniert:
Ich denke, das ist ein Fehler von Apple
quelle
Falls jemand immer noch frustriert ist, gibt es einen Trick, um die Dinge zum Laufen zu bringen.
Ich gebe manuell einen Ausgang in meine Klasse ein, zum Beispiel:
@IBOutlet weak var someView: UIView!
und ziehe aus dem Code in die Ansicht in IB oder Storyboard. Danach kann ich von IB / Storyboard in meine Klasse ziehen, um Verbindungen herzustellen. Redaktionsassistenten erkennen die Klasse in "Automatisch" usw.Funktioniert jedes Mal.
quelle
Für mich war es der Trick, sie aus Ihrer Zielmitgliedschaft in der rechten Spalte zu entfernen und erneut hinzuzufügen
quelle
Manchmal funktioniert Xcode, weil VC nicht auf die Klassendatei verweist. Die einfache Lösung hierfür ist:
Schreiben Sie die Eigenschaft manuell wie angegeben.
Dadurch wird vor @IBOutlet ein leeres Linkzeichen erstellt . Öffnen Sie Ihr Projekt im Assistenten-Editor, klicken Sie auf das Linkzeichen und ziehen Sie es in die Ansicht, die Sie verbinden möchten (ich habe eine Verbindung mit TableView hergestellt). und das ist es. Viel Spaß beim Codieren !!!
quelle
Ich hatte gerade dieses Problem im April 2017 mit Xcode 8
Einfach eine Steckdose durch Code erstellen und kompilieren behoben. z.B:
Du musst Xcode lieben ...
Bearbeiten: Immer noch auf Xcode 9
quelle
Die folgenden Schritte funktionieren für mich hoffentlich auch für Sie
1- Sie müssen Ihr Projekt nach dem Schließen von Xcode erneut öffnen.
2- Warten Sie auf die Indizierung der Projektdateien
3- Überprüfen Sie, ob es funktioniert oder nicht
4- Wenn immer noch nicht funktioniert, folge Schritt 5, wenn du nicht glücklich für dich bist :)
5- Bereinigen und erstellen Sie Ihr Projektziel
quelle
Ich habe alles versucht und es hat nicht funktioniert, also hat es für mich funktioniert:
Alle meine View Controller wurden nicht erkannt, daher war das Löschen aller Dateien und das erneute Hinzufügen keine Option, da dies ein großes Projekt ist.
quelle
Für mich hat folgendes funktioniert:
Führen Sie einen "sauberen" und einen "sauberen Build-Ordner" aus (drücken Sie im Menü "Produkt" auf "Option", um den Befehl "Clean Build-Ordner" abzurufen
Stoppen Sie Xcode
Wechseln Sie im Terminal zum abgeleiteten Datenordner:
(/ Benutzer // Bibliothek / Entwickler / Xcode / DerivedData)
Löschen Sie das abgeleitete Datenverzeichnis für Ihr Projekt.
Winken Sie totes Huhn in die Luft
Starten Sie Xcode
quelle
Bisher musste ich einige der Antworten kombinieren:
(Klicken Sie im Storyboard oben links im View Controller auf die gelbe Schaltfläche -> Gehen Sie zum Identitätsinspektor (Option + Befehl + 3) -> Löschen Sie den benutzerdefinierten Klassennamen oben.)
(Klicken Sie mit der rechten Maustaste auf die Datei -> Löschen -> Referenz entfernen)
(Klicken Sie mit der rechten Maustaste auf den Ordner, in dem sich die Datei befand -> "Datei zu [Projekt] hinzufügen")
quelle
Wenn die Leute das oben genannte versuchen und die Dinge immer noch nicht funktionieren, war der seltsame Trick, der für mich funktioniert hat, das Hinzufügen der Steckdose in einem Stück Leerzeichen. Es funktioniert, wenn sich keine anderen Zeilen direkt über oder unter der hinzuzufügenden Zeile befinden. Seltsam, aber es hat funktioniert!
quelle
Was für mich funktionierte, war, anstatt die Verbindung von der Schaltfläche zum Code zu ziehen, Folgendes:
Nachdem ich meinen Code auf diese Weise verknüpft hatte, funktionierte er danach normal.
quelle
Bleib fokussiert!
Ich fügte eine neue Klasse mit einem Xib hinzu und fing an, dieses Problem zu sehen. Ich verbrachte eine gute Zeit damit, die Antworten hier durchzusehen und zu sehen, ob irgendetwas davon einen Unterschied machte.
Zufällig habe ich mehrere Ziele in meinem Arbeitsbereich und muss oft zwischen ihnen wechseln.
Es stellt sich heraus, dass das Hinzufügen neuer Dateien eine Neuindizierung in Xcode auslöst. Wenn Sie jedoch auf das falsche Ziel zeigen, ist die Indizierung wahrscheinlich bedeutungslos und während des Ziehens zum Verbinden von Xcode kann Ihre Klasse nicht gefunden werden.
Zusamenfassend
Schritt 1.
Stellen Sie sicher, dass Sie das richtige Ziel festgelegt haben, damit die Indizierung sinnvoll ist.
quelle
Das hat bei mir funktioniert:
(halten Sie die Optionstaste gedrückt und gehen Sie zu " Produkt " Menü ", um darauf zuzugreifen.
Nebenbei bemerkt, ich bin mir nicht sicher, ob dies geholfen hat, aber ich habe auch die abgeleiteten Daten gelöscht, bevor ich die obigen Schritte ausgeführt habe (Xcode-Einstellungen> Standorte).
quelle
Wählen Sie den ViewController in storyBoard aus, löschen Sie den aktuellen Wert im rechten Bereich / " Kundenklasse " / "Klasse" und fügen Sie die Steuerungsklasse erneut hinzu (Typ: "SampleViewController" ...), und geben Sie ein. -> Das funktioniert bei mir
quelle
Ich habe alle diese Antworten ausprobiert. Das Problem bestand darin, dass Xcode die Dateien nicht indizieren konnte. Ich habe dies behoben, indem ich einfach Xcode beendet und das Projekt erneut geöffnet habe. Natürlich habe ich das getan, nachdem ich alle oben genannten Lösungen ausprobiert hatte: p
quelle
Produkt> Reinigen (Befehl - Umschalt - K) hat es für mich behoben!
quelle
Dies ist der EINFACHSTE Schritt, den ich unternommen habe, um dieses Problem zu beheben.
quelle
Wenn Sie nach meiner Testerfahrung eine im Xcode verknüpfte Klasse löschen und dann erneut eine Datei hinzufügen, tritt dieses Problem auf.
quelle
Wenn mir das passiert, habe ich den Code für die Klasse normalerweise noch nicht gespeichert. Hüpfen Sie einfach zum Code und drücken Sie cmd + s, um das Problem häufig richtig zu beheben.
quelle
Sie müssen nur das Projekt bereinigen und neu erstellen.
quelle
Keiner der oben genannten Schritte hat bei mir funktioniert, aber ich glaube, ich habe das Problem entdeckt. Zumindest hat es bei mir funktioniert, und es ist kein Fehler in Xcode.
Sehen Sie sich im Assistenten-Editor oben im Fenster den Code für Ihren viewController an. Die dritte Option von rechts sagt wahrscheinlich "Manuell", sollte aber "Automatisch" sagen. Nachdem ich dies geändert hatte, wurde das Problem behoben!
quelle
Ich bekam ein ähnliches Problem: "Ich konnte keine Klasse mit dem Namen ... finden" und die Ursache war meinerseits dumm, als ich es herausgefunden hatte. Stellen Sie sicher, dass Sie nicht vom Element auf die Benutzeroberfläche ziehen - stellen Sie sicher, dass es in die Klasse selbst gezogen wird
quelle
Ich habe ALLES versucht!
Stellen Sie sicher, dass der Klassenname Ihres UIViewControllers nicht das Wort "Test" enthält.
Fehlerbericht eingereicht.
quelle
Ich würde versuchen, die fraglichen .m- und .h-Dateien neu zu erstellen und ihnen einen ursprünglichen Namen zu geben, der nicht generisch wie "ViewController" ist. Versuchen Sie etwas mehr in der Art und Weise, wie diese Datei ausgeführt werden soll, und enden Sie in View Controller (dh "PizzaDecoraterViewController").
Wählen Sie dann den ViewController aus, mit dem Sie eine Verbindung zu diesen Dateien herstellen möchten. Stellen Sie sicher, dass Sie den ViewController auswählen, nicht nur ein Objekt darin. Klicken Sie auf den schwarzen Balken unten (der mit den Symbolen "Ersthelfer" und "Beenden" versehen ist). Der gesamte ViewController sollte blau umrandet sein. Gehen Sie dann im Identitätsinspektor zum Abschnitt Benutzerdefinierte Klasse, und im ersten Feld sollte ein abgeblendeter "UIViewController" angezeigt werden. Geben Sie in dieses Feld den Namen der .h- oder .m-Datei ein, zu der eine Verbindung hergestellt werden soll (geben Sie PizzaDecorator ein ... und es sollte eine kleine automatische Vervollständigung durchgeführt werden). Drücken Sie dann die EINGABETASTE.
Stellen Sie beim Öffnen des Assistenten-Editors sicher, dass die Datei, in die Sie ziehen und ablegen möchten, tatsächlich die richtige Datei ist.
Wenn Sie alles wie oben beschrieben getan haben, sollte es funktionieren.
quelle
Als ich die Antwort von @ ChrisHarrison kommentierte, funktionierten diese Dinge für mich nicht, aber das Löschen der abgeleiteten Daten wie in Ich brachte es zum Laufen, indem ich die abgeleiteten Daten wie in https://stackoverflow.com/a/16182672/1449799 löschte
quelle
Löschen Sie die Dateien (nur die Referenzen) und fügen Sie die Dateien erneut hinzu.
quelle
Nun, in meinem Fall hat Folgendes funktioniert (es ist ein bisschen komisch, aber es hat funktioniert):
Versuchen Sie, eine Datenquelle hinzuzufügen (z. B. eine Erweiterung des ViewControllers wie eine UITableViewDataSource). Xcode versucht, den ViewController neu zu laden. Dann schrieb ich eine Methode des Protokolls (am Anfang vervollständigte Xcode die Methoden nicht automatisch, sondern schrieb sie manuell aus), fügte dann die IBOutlets hinzu und entfernte schließlich die Datenquelle.
Beispiel:
quelle
Für mich konnte die Ansicht, für die ich eine benutzerdefinierte Klasse angegeben hatte, vom Interface Builder nicht kompiliert werden. Es wurde markiert
@IBDesignable
.Entfernen
@IBDesignable
und dann Hinzufügen meiner Steckdosen und Markieren als dann@IBDesignable
behoben, um das Problem in meinem Fall zu beheben.quelle
Versuchen Sie einfach, abgeleitete Daten für das Projekt zu löschen
quelle
versuchen Sie es einfach
quelle