Ich versuche, eine Schreibfeder zu erstellen, die eine Ansicht enthält, die in eine TableViewCell eingebettet wird. Ich habe die Schnittstellen- und Implementierungsdateien erstellt ResultCell.h
und ResultCell.m
. Sie sind auf Lager, sofort einsatzbereit, keine Codeänderungen.
Ich erstelle dann eine leere XIB-Datei und ziehe eine UIView darauf. Dann klicke ich auf Dateibesitzer und setze den Typ auf ResultCell
. Ich klicke auf die Ansicht und setze ihre Klasse ebenfalls ResultCell
.
Hier sind die Probleme, die ich habe:
- Bei Verwendung der Assistenten-Editor-Ansicht (in der ich lebe) wird die
ResultCell.h
Datei nicht angezeigt, wenn ich die Datei ResultCell.xib ansehe. Ich muss das Laden erzwingen, indem ich auf Automatisch klicke und die Datei auswähle. - Wenn ich eine Beschriftung in der Ansicht ablege und dann Strg + Klicken und Ziehen auf .h, um eine Steckdose zu erstellen, wird die folgende Fehlermeldung angezeigt: " Neue Steckdosenverbindung konnte nicht eingefügt werden : Es wurden keine Informationen zu der Klasse mit dem Namen ResultCell gefunden. ""
Ich habe versucht, die Ansicht zu erstellen und neu zu erstellen, und sie funktioniert einfach nicht. Ich habe angefangen, meine Geduld zu verlieren. Jede Hilfe wäre sehr, sehr dankbar!
Antworten:
Dies funktioniert möglicherweise nicht für Ihr spezielles Problem, aber gelegentlich wird dieser Fehler angezeigt, wenn ich mit neu erstellten Schreibfedern arbeite. Das Löschen und Neuerstellen der Schreibfedern und View Controller mit denselben Namen wie zuvor hat das Problem nicht behoben, das Neustarten von Xcode jedoch.
quelle
~/Library/Developer/Xcode/DerivedData
)Ich bin gerade heute in einen ähnlichen Zustand geraten. Es war sehr seltsam: Ich konnte jede XIB (neu oder vorhanden) an jede bereits vorhandene ViewController-Klasse im Projekt anhängen, aber ich konnte keinen neuen ViewController erstellen und ihn ordnungsgemäß an eine XIB anhängen lassen. Die "Assistent" -Funktionalität funktionierte nicht, ebenso wenig wie die IB-zu-Header-Datei-Verbindungsfunktion.
Das Schließen des Projekts und das erneute Öffnen haben das Problem nicht behoben.
Das Beenden von XCode und das Neustarten haben das Problem nicht behoben.
Das Erstellen eines neuen Projekts und das Testen der Funktionalität funktionierten einwandfrei, was mich zu der Annahme führte, dass irgendwo in einem Cache etwas beschädigt war.
Meine Lösung
Übrigens schien es nicht klar zu sein, nur eine vollständige Reinigung durchzuführen. Ich musste die abgeleiteten Daten wegwerfen. Ich bin mir sicher, dass ich aufgrund von Git-Spielen, die ich gespielt habe, in diese Position gekommen bin, aber ich hatte keine Ahnung, wie ich rauskommen sollte, denn selbst das Zurückschalten auf frühere Git-Revisionen hat nicht geholfen. (Das war auch ein großer Hinweis darauf, dass es etwas war, das vom Projekt selbst nicht verfolgt wurde.)
quelle
Ich hatte gerade dieses Problem und ein Neustart von Xcode konnte es nicht beheben. Ich habe die Klassendateien aus dem Projekt entfernt, sie dann wieder hinzugefügt und es hat funktioniert.
quelle
Ich hatte das gleiche Problem. Und ich habe versucht:
Nichts davon hat funktioniert. Was für mich funktionierte, war einfach:
Und fertig!
quelle
Wenn ein Neustart von Xcode bei Ihnen nicht funktioniert, funktioniert das Ausschalten der neuen .m-Datei in die Zielmitgliedschaft.
quelle
Das hat mir geholfen:
Wenn Sie kein "Panel" sehen, schauen Sie bitte in die obere rechte Ecke des Fensters und aktivieren Sie die richtigen "Ansicht" -Schaltflächen. Wenn Sie die "Ansicht" -Schaltflächen nicht sehen, klicken Sie oben rechts auf die Kapselschaltfläche.
quelle
Ich habe festgestellt, dass die .m-Datei in den Ordner en.lproj verschoben wurde.
Löschen Sie einfach (nur als Referenz) die .m-Datei aus dem Xcode und verschieben Sie .m aus dem en.lproj. Fügen Sie es erneut hinzu. Es wird das Problem beheben.
Keine Sorge, Sie erhalten alle Ihre Verbindungen zurück.
quelle
Ich bin heute auf das gleiche Problem gestoßen. Ein Neustart von XCode hat das Problem für mich nicht behoben. Ich konnte die Dinge wieder normalisieren, indem ich die Option "Löschen" von "Abgeleitete Daten" des Projekts verwendete , die sich unter Organizer befindet . Der Organisator sagt, dass "Abgeleitete Daten Index, Build-Ausgabe und Protokolle enthalten". Ich vermute, dass entweder die Index- oder die Build-Ausgabe dieses Problem verursacht hat.
quelle
Gehen Sie in XCode zum Organizer, klicken Sie auf Projekt, klicken Sie auf Abgeleitete Daten löschen ... und bereinigen Sie das Projekt
quelle
In meinem Fall hat es geholfen, eine "falsche Änderung" (nur ein Leerzeichen) an der entsprechenden Header-Datei vorzunehmen.
quelle
UITableViewCell
UIView
auf die leere Leinwand ziehen, sondern aUITableViewCell
Rufen Sie jedes Mal auf, wenn Sie eine neue Zelle laden möchten:
Verwenden Sie nach dem Laden die Zelle und stellen Sie den ivar / Auslass auf Null, um für die nächste Ladung bereit zu sein
Es gibt andere Möglichkeiten, aber das ist üblich
quelle
Vielleicht hat das für mich funktioniert .. (Xcode v4.5)
Das hat nicht funktioniert
Ich habe versucht, das Ziehen in die Schnittstellendefinition meiner .h zu steuern
@end
Dies funktionierte (vielleicht sollte es so funktionieren, ich wusste es vorher nicht). Siehe die offenen und geschlossenen Klammern. Steuern Sie Drag & Drop nach der geschlossenen Klammer.
quelle
Ich hatte ein ähnliches Problem mit einem in Swift geschriebenen Projekt.
Was für mich funktioniert hat, war das Einrichten des IBOutlets in Code wie diesem
und verbinden Sie es anschließend mit Interface Builder, indem Sie es auf den kleinen Kreis ziehen, der direkt neben der Codezeile angezeigt wird.
quelle
Keine der oben genannten Problemumgehungen hat das Connector-Problem für mich behoben, sodass ich mein Haustierprojekt zurückgestellt habe, bis ich auf den folgenden Stackoverflow-Thread gestoßen bin:
https://stackoverflow.com/a/15873770/2846800
Ich hatte in einer früheren Version von XCode an einem großen Projekt gearbeitet und die Indizierung deaktiviert. Durch erneutes Aktivieren der Indizierung wurde mein Problem behoben:
Ich kann jetzt die D & D-Funktionen von Interface Builder verwenden. Ich hoffe das kann anderen helfen ...
quelle
Dieses Problem scheint ein Xcode-Fehler zu sein, der hauptsächlich auftritt, wenn Sie eine Datei durch eine neue Datei mit demselben Namen ersetzen. Xcode scheint eine Referenz der älteren gleichnamigen Datei zu behalten.
Wie auch immer, der Weg, dies zu beheben, scheint zu sein:
(Allein die Schritte 1 und 2 haben es für mich behoben.)
quelle
Wenn Sie Dateien aus einem anderen Projekt kopiert haben, aktivieren Sie das Kontrollkästchen "Zu Zielen hinzufügen"
quelle
Durch das Umbenennen der Klassendateien werden sie möglicherweise von der XIB getrennt. Diese Antwort hat mir geholfen, Folgendes zu entdecken:
Strg-Ziehen von der Schaltfläche zur Methode funktioniert nicht. Xcode / Interface Builder
Überprüfen Sie, ob Ihre benutzerdefinierte Klasse im Identitätsinspektor richtig eingestellt ist.
quelle
Ähnliches Symptom, aber unterschiedliche Ursache.
Anscheinend habe ich die Rücktaste gedrückt, als der Fokus auf der Assistentenansicht lag, weil eine der Standardkommentarzeilen für Dateivorlagen von // nach / ging, was dazu führte, dass die Datei nicht kompiliert wurde.
Durch das Korrigieren des Kommentars konnte das SDK die Datei analysieren, als UIViewController erkennen und im Outlet hinzufügen.
SO - Wenn Sie dieses Problem haben, führen Sie einen Build oder eine Analyse durch, um festzustellen, ob Fehler in der .h-Datei Ihres View Controllers behoben werden müssen. Dann probieren Sie die anderen Lösungen.
quelle
Dies mag ein altes Thema sein, aber falls jemand in Zukunft das gleiche Problem hat, versuchen Sie, die zugehörigen .xib-, .h- und .m-Dateien zu löschen und neue zu erstellen. Für mich war der UIViewController in meiner .h-Datei nicht lila, und selbst das Zurücksetzen und Eingeben half nichts.
quelle
Setzen Sie einfach eine Linie zwischen @implementation und @synthesize. Die meisten Antworten hier haben das gemeinsam. Es hat bei mir funktioniert
quelle
Ich habe hier einfach alles ausprobiert und nichts hat funktioniert (mit einer Entwicklervorschau für Xcode 5).
Das einzige, was für mich funktioniert hat, war, diese unvollständige Zeile in meine Schnittstellendatei einzufügen:
Aus irgendeinem Grund funktionierte das Hinzufügen von Outlets und Aktionen per Drag & Drop von einer .xib danach einwandfrei.
quelle
Für mich hat das Reinigen oder Löschen der DerivedData das Problem gelöst.
Ich habe mehrmals versucht, meine UIViewController-Klasse zu löschen und neu zu erstellen, und habe das Problem immer wieder festgestellt.
Dann habe ich die UIViewController-Klasse neu erstellt und ihr einen anderen Namen gegeben. Dies löste das Problem für mich.
quelle
Ich hatte dieses Problem und fand eine Lösung, die oben nicht aufgeführt ist.
In meinem Fall konnte ich feststellen, dass in der .h-Datei der Klasse etwas nicht stimmte, da mein benutzerdefinierter Ansichts-Controller die Klasse nicht erkannte: UIViewController (sie war in Schwarz und nicht in Lila). Alle anderen benutzerdefinierten Ansichts-Controller hatten den: UIViewController in lila.
In meinem Fall und möglicherweise in Ihrem Fall musste ich die Klasse zu den Dropdown-Listen Ziele / Erstellungsphasen / Kompilieren von Quellen hinzufügen. Die .m muss hinzugefügt werden. Alle anderen .m waren da, aber nicht diese.
Nachdem ich es hinzugefügt hatte, erschien der: UIViewController in lila und alles funktionierte einwandfrei.
quelle
Für meinen Fall habe ich mehrere Projekte mit einigen anderen Abhängigkeiten. Ich habe versucht, das Problem zu lösen, indem ich abgeleitete Daten gelöscht oder XCode neu gestartet habe, aber es konnte nicht funktionieren. Am Ende habe ich die folgende Methode ausprobiert und sie funktioniert:
Gehen Sie zu Ziel> Nur Zielarchitekturen erstellen> und setzen Sie Debug und Release auf NO.
Stellen Sie dies für alle Projekte im Arbeitsbereich ein und kompilieren Sie erneut, um sicherzustellen, dass keine weiteren Fehler vorliegen. Vielleicht macht es keinen Sinn, aber irgendwie hat es getan. Während meiner Kompilierung wurden andere Probleme wie Linkerfehler und Symbole nicht gefunden.
quelle
Öffnen Sie für die * .m-Datei dieser Klassenansicht "Show File Inspector" und deaktivieren Sie "Target Membership" für dieses Projekt. Führen Sie dann Clean (Menü Product-> Clean) aus und aktivieren Sie erneut "Target Membership" für dieses Projekt
quelle
Mit Swift hatte ich ein ähnliches Problem. Ich fand heraus, dass die Kommentare Teil des Problems für mich waren.
Ich nutzte den Standard-Ansichts-Controller, arbeitete daran und erstellte dann einen zweiten Ansichts-Controller, indem ich den gesamten ersten kopierte, ihn nur auf viewDidLoad () reduzierte und die Klasse in TestViewController umbenannte. Builds funktionierten, Code wurde ausgeführt. Alles war gut.
Wenn ich ein UITextField hineinzog, um eine Steckdose zu erstellen, ließ es mich nicht. Ich habe festgestellt, dass in meinen Kommentaren immer noch "ViewController.swift" steht, daher habe ich den Kommentartext in "TestViewController.swift" geändert und neu erstellt. Ich konnte meine Steckdose anschließen!
Ich frage mich, ob der Indexer sowohl die Kommentare als auch die Klassennamen gelesen hat und irgendwie verwirrt war.
quelle
Hoffe das hilft jemandem da draußen.
Ich musste nur den abgeleiteten Datenordner löschen. Sie müssen auf Fenster -> Organizer -> Projekte -> Abgeleitete Daten löschen klicken
UND XCODE neu starten.
Du solltest gut gehen!
quelle
Die neue Klasse, die nicht Teil des "ZIELS" ist, ist wahrscheinlich die Hauptursache dafür, wie in einigen dieser Antworten angedeutet.
Beim Erstellen einer neuen Kakaoklasse ist standardmäßig die Option zum Hinzufügen einer neuen Klasse zum Ziel aktiviert. Sollte dies jedoch aus irgendeinem Grund nicht aktiviert sein, wenn Sie auf Speichern klicken, tritt dieses Problem auf.
Jede dieser Problemumgehungen, mit denen die neue Klasse zum Apps-Ziel hinzugefügt wird, behebt das Problem und hat all diese "Korrekturen" gemeinsam.
Ich denke, XCode hat wahrscheinlich einige Fehler, die dazu führen, dass eine neue Datei standardmäßig NICHT zum Hauptziel der Apps hinzugefügt wird. Der Fix läuft darauf hinaus, Ihre 'kaputte' Klasse zum Hauptziel hinzuzufügen
quelle
In XCode 7.1 funktionierte das Hinzufügen des Connectors an einer anderen Stelle in meiner Quelldatei. Der Fehler, den ich auf eine meiner Variablen verwies, als wäre es eine Klasse (ergab keinen Sinn). Der Fehler trat nicht mehr auf, als ich den Konnektor unter dieser Variablen anstatt über dieser hinzufügte.
quelle
Es gibt auch einen anderen Grund für das Problem ... wenn Sie eine neue Kakaoklassendatei mit einer anderen Vorlage als ios erstellt haben ... kann das passieren ...
Die Lösung wäre, es zu löschen und mit der richtigen Vorlage neu zu erstellen
quelle