Dieser Fehler hat mich verrückt gemacht, seit ich Xcode (4.6.3) verwendet habe. Immer wenn ich versuche, ein Storyboard-Element mit meinem Code zu verknüpfen, erhalte ich die Fehlermeldung:
Für die Klasse ViewController konnten keine Informationen gefunden werden.
Dies geschieht auch bei benutzerdefinierten Klassen. Ich habe Methoden wie versucht:
Ich kann nicht bei gedrückter Strg-Taste ziehen, um Verbindungen zu erstellen, unabhängig von der Klasse. Das gleiche Problem tritt bei einer brandneuen Vorlagenanwendung auf. Wenn ich den Code manuell eingebe und dann die Strg-Taste drücke, kann ich eine funktionierende Verbindung herstellen, aber ich kann ihn nicht automatisch hinzufügen. Nichts, was ich bisher im Internet gefunden habe, hat geholfen. Irgendwelche Hinweise?
Was dieses Problem 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.
Anmerkung: für mich hat nicht gearbeitet:
Ich denke, das ist ein Fehler von Apple
Für den Fall, dass jemand noch immer frustriert ist, gibt es einen Trick, um die Dinge zum Laufen zu bringen.
Was ich mache, ist manuell einen Ausgang in meine Klasse einzugeben, zum Beispiel: @IBOutlet weak var someView: UIView!
, und ziehen Sie aus dem Code in die Ansicht in IB oder Storyboard. Danach kann ich von IB/Storyboard in meine Klasse ziehen, um Verbindungen herzustellen. Die Editor-Editoren erkennen die Klasse in "Automatisch" usw.
Funktioniert jedes Mal.
Manchmal verwendet Xcode aufgrund von VC keine Klassendatei. Die einfache Lösung dafür ist:
eigenschaft manuell schreiben, wie angegeben.
class YourClassName{
@IBOutlet weak var YourTableName: UITableView!
}
Dadurch wird ein leeres Verknüpfungszeichen vor @IBOutlet erstellt. Öffnen Sie Ihr Projekt im Editor, und klicken Sie dann auf das Verknüpfungszeichen und ziehen Sie in die Ansicht, die Sie verbinden möchten (ich habe eine Verbindung mit TableView hergestellt). und das ist es. Viel Spaß beim Codieren !!!
die folgenden schritte funktionieren für mich hoffnung, dass auch für sie funktioniert
1- Sie müssen Ihr Projekt nach dem Schließen von Xcode erneut öffnen.
2- Warten Sie auf die Indizierung der Projektdateien
3- Prüfen Sie, ob es funktioniert oder nicht
4- Wenn noch nicht funktioniert, folgen Sie Schritt 5, falls Sie nicht glücklich für Sie sind :)
5- Bereinigen und erstellen Sie Ihr Projektziel
Ich hatte dieses Problem gerade im April 2017 mit Xcode 8
Einfach eine Steckdose mit Code erstellen und kompilieren. z.B:
@IBOutlet weak var containerViewHeight: NSLayoutConstraint!
Du musst Xcode lieben ...
Edit: Es passiert immer noch Xcode 9
Ich habe alles ausprobiert und es hat nicht funktioniert. Was für mich funktioniert, ist:
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.
Für mich hat folgendes funktioniert:
Führen Sie einen 'sauberen' und einen 'sauberen Ordner' aus (drücken Sie im Produktmenü auf 'Option', um den Befehl 'sauberer Ordner' aufzurufen
Stoppen Sie Xcode
Wechseln Sie im Terminal zum Ordner für abgeleitete Daten:
(/ Benutzer // Bibliothek/Entwickler/Xcode/DerivedData)
Löschen Sie das abgeleitete Datenverzeichnis für Ihr Projekt.
Wave totes Huhn in der Luft
Starten Sie Xcode
Was für mich funktionierte, war, anstatt die Verbindung vom Button zum Code zu ziehen, war:
nachdem ich meinen Code auf diese Weise verlinkt hatte, funktionierte er danach normal.
Ich musste bisher einige Antworten zusammenstellen:
(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 befunden hat -> "Datei zu [Projekt] hinzufügen").)
Wenn die Leute das oben Genannte versuchen und die Dinge immer noch nicht funktionieren, fügte der seltsame Trick, der für mich funktionierte, den Auslass in ein Stück Whitespace. Dies funktioniert, wenn sich keine anderen Zeilen direkt über oder unter der hinzugefügten Zeile befinden. Seltsam, aber es hat funktioniert!
Produkt> Reinigen (Befehl - Umschalttaste - K) hat es für mich behoben!
Das hat für mich funktioniert:
Nebenbei bemerkt bin ich nicht sicher, ob dies geholfen hat, aber ich habe auch die Abgeleiteten Daten gelöscht, bevor Sie die obigen Schritte ausführen (Xcode-Einstellungen> Standorte).
Dies ist der EINFACHSTE Schritt, den ich zur Behebung dieses Problems durchgeführt habe.
Bleib fokussiert!
Ich fügte eine neue Klasse mit einer Xib hinzu und begann, dieses Problem zu sehen. Ich verbrachte eine gute Zeit damit, die Antworten hier durchzulesen und zu sehen, ob etwas davon einen Unterschied machte.
Zufällig habe ich mehrere Ziele in meinem Arbeitsbereich und oft muss ich zwischen ihnen wechseln.
Es stellt sich heraus, dass durch das Hinzufügen neuer Dateien ein neuer Index in Xcode gestartet wird. Wenn Sie jedoch auf das falsche Ziel zeigen, ist die Indizierung wahrscheinlich bedeutungslos, und während des Verbindungsvorgangs kann Xcode Ihre Klasse nicht finden.
Zusamenfassend
Schritt 1.
Stellen Sie sicher, dass Sie das richtige Ziel festgelegt haben, sodass die Indizierung sinnvoll ist.
Ich habe alle diese Antworten ausprobiert. Das Problem bestand für mich darin, dass Xcode die Dateien nicht indizieren konnte. Ich habe das Problem 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
Sie müssen lediglich das Projekt reinigen und neu erstellen.
Wenn Sie nach meinem Test eine Klasse löschen, die im Xcode zugeordnet ist, und dann erneut eine Datei hinzufügen, tritt dieses Problem auf.
Normalerweise habe ich den Code für die Klasse bisher noch nicht gespeichert. Hüpfen Sie einfach zum Code und drücken Sie cmd + s. Das Problem wird dadurch häufig behoben.
Keiner der obigen Schritte hat bei mir funktioniert, aber ich glaube, ich habe das Problem möglicherweise entdeckt. Zumindest hat es bei mir funktioniert und es ist kein Fehler in Xcode.
Wenn Sie sich im Assistenten-Editor befinden, sehen Sie oben im Fenster den Code für Ihren viewController. Die dritte Option von rechts lautet wahrscheinlich "Manuell", sollte aber "Automatisch" heißen. Nachdem ich dies geändert hatte, wurde das Problem behoben!
Ich bekam ein ähnliches Problem: "Konnte keine Klasse mit dem Namen ... finden" und die Ursache war für mich dumm, als ich es herausfand. Stellen Sie sicher, dass Sie nicht vom Element auf die interface - ziehen. Stellen Sie sicher, dass es in die Klasse selbst gezogen wird
Wählen Sie den ViewController in StoryBoard aus, löschen Sie den aktuellen Wert in Rechter Handbereich / "Kundenklasse"/"Klasse" und fügen Sie die Kontrollklasse erneut hinzu (Typ: "SampleViewController" ...). > Diese Arbeit für mich
Für mich konnte die Ansicht, für die ich eine benutzerdefinierte Klasse angegeben hatte, nicht vom Schnittstellenersteller kompiliert werden. Es wurde @IBDesignable
markiert.
Das Entfernen von @IBDesignable
und das Hinzufügen meiner Outlets und das Markieren als @IBDesignable
hat das Problem in meinem Fall behoben.
In meinem Fall war dies darauf zurückzuführen, dass der Xcode-Indexierungsprozess nicht mehr ausgeführt wurde. Ein Neustart meines Macs hat es behoben.
Ich habe ALLES ausprobiert!
Stellen Sie sicher, dass der Klassenname Ihres UIViewController nicht das Wort "Test" enthält.
Fehlerbericht übermittelt.
Ich würde versuchen, die betreffenden .m- und .h-Dateien neu zu erstellen und ihnen einen ursprünglichen Namen zu geben, nicht generisch wie "ViewController". Probieren Sie etwas mehr aus, was die Datei tun soll, und enden in View Controller (d. H. "PizzaDecoraterViewController").
Wählen Sie dann den ViewController aus, den Sie mit diesen Dateien verbinden möchten. Stellen Sie sicher, dass Sie den ViewController auswählen, nicht nur ein Objekt innerhalb. Klicken Sie unten auf die schwarze Leiste (die mit den Symbolen "First Responder" und "Exit"). Der gesamte ViewController sollte blau umrandet sein. Wechseln Sie dann im Identitätsinspektor zum Abschnitt "Benutzerdefinierte Klasse". Im ersten Feld sollte ein ausgegrauter "UIViewController" angezeigt werden. Geben Sie in dieses Feld den Namen der .h- oder .m-Datei ein, zu der Sie eine Verbindung herstellen möchten (beginnen Sie mit der Eingabe von PizzaDecorator ... und es sollte etwas automatisch vervollständigt 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.
In meinem Fall funktionierte die Sache (es ist ein bisschen seltsam, hat aber funktioniert) folgendes:
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 hat Xcode die Methoden nicht automatisch vervollständigt, sondern manuell geschrieben), dann habe ich die IBOutlets hinzugefügt und schließlich die Datenquelle entfernt.
Beispiel:
class TestViewController:UIViewController{
// This viewController presents “Could not find any information for class named ViewController”
}
extension TestViewController:UITableViewDataSource{
//Add Some methods of the protocol, Xcode will try to autocomplete and then it's going to reload the class, from then you can add your IBOulets / Actions .. And remove this extension if you don't need it otherwise.
}
Okay, Jungs haben fast alle Top-Antworten gesehen und keine hat für mich funktioniert.
Was für mich funktioniert hat, ist folgendes:
Derived Data
-Adresse aus Ihrem Xcode-Projekt ... Xcode -> Preferences -> Location Tab -> Derived Data
Close Xcode
Gehen Sie nun zum abgeleiteten Datenort und löschen Sie dort den Ordner Ihres Projekts.
Jetzt Xcode und voila öffnen!
Versuchen Sie einfach, abgeleitete Daten für das Projekt zu löschen
Gehen Sie zum Projektordner und löschen Sie den abgeleiteten Datenordner
wenn Sie die abgeleiteten Daten nicht finden können, gehen Sie zum Finder und gehen Sie zu
~/Library/Developer/XCode/DerivedData/"project"
(Ersetzen Sie "Projektname" durch Projektnamen)
Als ich @ ChrisHarrisons Antwort kommentierte, funktionierten diese Dinge nicht für mich, aber das Löschen der abgeleiteten Daten wie in Ich habe es zum Funktionieren gebracht, indem ich die abgeleiteten Daten wie in https://stackoverflow.com/a/16182672) löschte/1449799
In meinem Fall hatte ich den gleichen Klassennamen und xcode konnte nicht erkennen, auf welchen ich ziele. Seien Sie also vorsichtig, wenn Sie den Namen Ihrer Klassen auswählen.
Überprüfen Sie im Finder Xcode, ob er geschlossen ist oder nicht.
Xcode beenden und neu starten.
Produkt> Reinigen
Löschen Sie die Dateien (nur die Referenzen) und fügen Sie die Dateien erneut hinzu.
Ich weiß, dass dies in den meisten Fällen nur das Verhalten von Xcode ist, aber in meinem Fall konnte keine der vorgeschlagenen Aktionen das Problem beheben, und ich glaube, es war ein Fehler, den ich beim Versuch, mein Projekt umzubenennen, gemacht habe, sodass ich schließlich ein neues Projekt erstellte und alles über importieren.
Dies hat es schließlich behoben.
Ich starte einfach Xcode neu und dann funktioniert es.
probiere es einfach aus
rm -rf ~/Library/Caches/com.Apple.dt.Xcode
defaults delete com.Apple.dt.Xcode IDEIndexDisable
defaults write com.Apple.dt.Xcode IDEIndexEnable 1