Ich versuche, eine Spitze zu erstellen, die eine Ansicht enthält, die in eine TableViewCell eingebettet wird. Ich habe die Schnittstellen- und Implementierungsdateien ResultCell.h
und ResultCell.m
erstellt. Sie sind sofort lieferbar, keine Code-Änderungen.
Ich erstelle dann eine leere XIB-Datei und ziehe eine UIView darauf. Dann klicke ich auf den Besitzer der Datei und setze den Typ auf ResultCell
. Ich klicke auf die Ansicht und setze die Klasse auf ResultCell
.
Hier sind die Probleme, die ich habe:
ResultCell.h
-Datei nicht angezeigt, wenn ich die ResultCell.xib-Datei sehe. Ich muss das Laden erzwingen, indem Sie auf Automatisch klicken und die Datei auswählen.Ich habe versucht, die Ansicht zu erstellen und neu zu erstellen, sie funktioniert einfach nicht und ich habe meine Geduld verloren. Jede Hilfe wäre sehr, sehr dankbar!
Dies funktioniert möglicherweise nicht für Ihr spezifisches Problem, aber gelegentlich erhalte ich diesen Fehler, wenn ich mit neu erstellten Spitzen arbeite. Das Löschen und Wiederherstellen der Nibs und View Controller mit denselben Namen wie zuvor löste das Problem nicht, das erneute Starten von Xcode jedoch.
Ich bin gerade heute in einen ähnlichen Zustand geraten. Es war sehr seltsam: Ich konnte jede XIB (neue oder vorhandene) an eine bereits vorhandene ViewController-Klasse im Projekt anhängen, aber ich konnte keinen neuen ViewController erstellen und ihn ordnungsgemäß an eine XIB anhängen. Die "Assistent" -Funktionalität funktionierte nicht, und auch die IB-zu-Headerdatei-Verbindungsfunktion.
Das Schließen des Projekts und das erneute Öffnen konnten nicht behoben werden.
Beim Beenden von XCode und beim Neustart wurde der Fehler nicht behoben.
Das Erstellen eines neuen Projekts und das Testen der Funktionalität funktionierte gut, was mich zu der Überzeugung brachte, dass irgendwo irgendetwas beschädigt war.
Meine Lösung
Übrigens schien das reine Reinigen der Dinge nicht zu klären. Ich musste die abgeleiteten Daten verwerfen. Ich bin mir sicher, dass ich aufgrund von Git-Spielen, die ich gespielt habe, in diese Position geraten bin, aber ich hatte keine Ahnung, wie ich herauskommen sollte, denn selbst der Wechsel zu früheren Git-Revisionen half nicht. (Das war auch ein großer Hinweis, dass das Projekt an sich etwas unberührt hatte.)
Ich hatte das gleiche Problem. Und ich habe versucht:
Nichts davon hat funktioniert. Was für mich funktionierte, war einfach:
Und fertig!
Ich hatte gerade dieses Problem und ein Neustart von Xcode hat es nicht behoben. Ich entfernte die Klassendateien aus dem Projekt, fügte sie wieder hinzu und es begann zu arbeiten.
Wenn Xcode nicht neu gestartet werden kann, habe ich festgestellt, dass das Umschalten der neuen .m-Datei in die Zielmitgliedschaft funktioniert.
Das hat mir geholfen:
Wenn Sie kein "Panel" sehen, schauen Sie sich bitte die rechte obere Ecke des Fensters an und aktivieren Sie die entsprechenden "View" -Schaltflächen. Wenn Sie die Schaltflächen "Ansicht" nicht sehen, klicken Sie oben rechts auf die Schaltfläche "Kapsel".
klicken Sie in XCode zum Organizer, klicken Sie auf Projekt, klicken Sie auf abgeleitete Daten löschen ... und löschen Sie das Projekt
Ich habe festgestellt, dass die .m-Datei in den Ordner en.lproj verschoben wurde.
Löschen Sie einfach (nur Referenz) die .m-Datei aus dem Xcode und verschieben Sie sie aus dem en.lproj. Fügen Sie es erneut hinzu. Das Problem wird dadurch behoben.
Keine Sorge, Sie erhalten alle Ihre Verbindungen zurück.
In meinem Fall half es, eine "falsche Änderung" (nur ein Leerzeichen) an der entsprechenden Header-Datei vorzunehmen.
Ich bin heute auf das gleiche Problem gestoßen. Durch den Neustart von XCode wurde das Problem für mich nicht behoben. Ich konnte die Dinge wieder normalisieren, indem ich "Delete" Option von "Abgeleitete Daten" des Projekts die unter Organizer gefunden wird. Der Organisator sagt: "Abgeleitete Daten umfassen Index, Build-Ausgabe und Protokolle". Ich vermute, dass entweder index oder build - Ausgabe dieses Problem verursacht hat.
Vielleicht hat das bei mir funktioniert .. (Xcode v4.5)
Das hat nicht funktioniert
Ich habe versucht, das Ziehen in die Schnittstellendefinition meiner .h zu steuern
@interface SearchViewController : UIViewController
@end
Das hat funktioniert (Vielleicht sollte es so sein, ich wusste es vorher nicht). Steuern Sie Drag & Drop nach der geschlossenen Klammer.
@interface SearchViewController : UIViewController
{
}
@end
Ich hatte ein ähnliches Problem mit einem in Swift geschriebenen Projekt.
Was für mich funktionierte, war das IBOutlet in diesem Code einzurichten
@IBOutlet var foo: UIView?
und verbinden Sie es anschließend mit dem Interface Builder, indem Sie auf den kleinen Kreis ziehen, der direkt neben der Codezeile angezeigt wird.
Dieses Problem scheint ein Xcode-Fehler zu sein, der sich meistens verschlechtert, wenn Sie eine Datei durch eine neue Datei mit demselben Namen ersetzen. Xcode scheint einen Verweis auf die ältere Datei mit demselben Namen zu behalten.
Wie auch immer, der Weg, dies zu beheben, scheint zu sein:
(Die Schritte 1 und 2 haben es für mich behoben.)
UITableViewCell
seinUIView
auf die leere Leinwand ziehen. Sie sollten eine UITableViewCell
ziehen.Wenn Sie eine neue Zelle laden möchten, rufen Sie Folgendes auf:
[[NSBundle mainBundle] loadNibNamed:nibName
owner:controllerWithOutletToCell
options:nil]
verwenden Sie nach dem Laden die Zelle, und setzen Sie den ivar/-auslass auf null, um für die nächste Ladung bereit zu sein
es gibt andere Wege, aber das ist üblich
Keine der oben genannten Problemumgehungen löste das Connector-Problem für mich. Daher habe ich mein Haustierprojekt zurückgestellt, bis ich auf den folgenden stackoverflow-Thread stieß:
https://stackoverflow.com/a/15873770/2846800
Ich habe an einem großen Projekt in einer früheren Version von XCode gearbeitet und die Indizierung deaktiviert. Durch das erneute Aktivieren der Indizierung wurde mein Problem behoben:
defaults delete com.Apple.dt.XCode IDEIndexDisable
Ich kann jetzt die D & D-Funktionen von Interface Builder verwenden. Ich hoffe das kann anderen helfen ...
Für mich, ob das Reinigen oder Löschen der DerivedData das Problem gelöst hat.
Ich habe mehrmals versucht, meine UIViewController-Klasse zu löschen und neu zu erstellen, und bekam das Problem immer wieder.
Dann habe ich die UIViewController-Klasse neu erstellt und ihr einen anderen Namen gegeben. Dies hat das Problem für mich gelöst.
Ich habe das gleiche Problem. Das Wiederaufbauprojekt hilft mir Command+B
.
Fügen Sie einfach eine Linie zwischen @implementation und @synthesize ein. Die meisten Antworten hier haben das gemeinsam. Es hat für mich funktioniert
@implementation
@synthesize
Dies kann ein altes Thema sein, aber für den Fall, dass jemand in Zukunft das gleiche Problem hat, löschen Sie die zugehörigen .xib-, .h- und .m-Dateien und erstellen Sie neue. Für mich war der UIViewController in meiner .h-Datei nicht lila und sogar das Hin- und Herschwenken und das Eingeben half nicht.
Durch das Umbenennen der Klassendateien wird möglicherweise die Verknüpfung mit dem XIB aufgehoben. Diese Antwort hat mir geholfen, das herauszufinden:
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.
Ähnliches Symptom, aber unterschiedliche Ursache.
Anscheinend habe ich die Rücktaste gedrückt, als der Fokus auf der Assistentenansicht lag, weil eine der Kommentarzeilen der Standardvorlage von // nach/ging, wodurch die Datei nicht kompiliert wurde.
Durch das Korrigieren des Kommentars konnte das SDK die Datei analysieren, als UIViewController erkennen und dem Ausgang hinzufügen.
SO - Wenn Sie dieses Problem haben, führen Sie einen Build oder eine Analyse durch, um zu sehen, ob Fehler in der View-Controller-Datei (H) behoben werden müssen. Dann probieren Sie die anderen Lösungen.
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 NEUSTART XCODE.
Du solltest gut sein!
Mit Swift hatte ich ein ähnliches Problem. Ich fand heraus, dass die Kommentare für mich ein Teil des Problems waren.
Ich nutzte den Standard-View-Controller, arbeitete ein wenig daran und erstellte dann einen zweiten View-Controller, indem ich den gesamten ersten kopierte, ihn auf viewDidLoad () reduzierte und die Klasse in TestViewController umbenannte. Builds funktionierten, Code wurde ausgeführt. Alles war gut.
Wenn ich ein UITextField zu einem Outlet gezogen habe, würde ich das nicht zulassen. Ich habe bemerkt, dass in meinen Kommentaren immer noch "ViewController.Swift" angezeigt wurde. Daher wurde der Kommentartext in "TestViewController.Swift" geändert und neu erstellt. Ich konnte meine Steckdose anschließen!
Ich frage mich, ob der Indexer die Kommentare sowie die Klassennamen las und irgendwie verwirrt war.
Ich habe einfach alles hier ausprobiert und nichts hat funktioniert (mit einer Developer Preview für Xcode 5).
Das einzige, was für mich funktionierte, war, diese unvollständige Zeile in meine Interface-Datei aufzunehmen:
@property (nonatomic, weak)
Aus irgendeinem Grund funktionierte das Hinzufügen von Ausgängen und Aktionen per Drag & Drop aus einer .xib.
Wenn Sie Dateien aus einem anderen Projekt kopiert haben, aktivieren Sie das Kontrollkästchen "Zu Zielen hinzufügen"
Ich habe dieses Problem gehabt und eine Lösung gefunden, die oben nicht aufgeführt ist.
In meinem Fall konnte ich feststellen, dass in der Klasse .h-Datei ein Fehler aufgetreten ist, da mein benutzerdefinierter View-Controller die Klasse nicht erkannt hat: UIViewController (in Schwarz und nicht in Violett). Alle anderen benutzerdefinierten Ansichtscontroller hatten: UIViewController in Lila.
in meinem Fall und möglicherweise auch in Ihrem Fall musste ich die Klasse Ziel/Build-Phasen/Compile-Quellen hinzufügen hinzufügen. Das .m muss hinzugefügt werden. Alle anderen Ms waren da, aber nicht diese.
Nachdem ich es hinzugefügt hatte, erschien der: UIViewController in Lila und alles funktionierte gut.
In XCode 7.1 funktionierte das Hinzufügen des Connectors an einer anderen Stelle in meiner Quelldatei. Der Fehler, den ich bekam, wurde auf eine meiner Variablen verwiesen, als wäre es eine Klasse (machte keinen Sinn). Der Fehler trat nicht mehr auf, wenn ich den Connector unterhalb dieser Variablen statt oberhalb davon hinzufügte.
Die neue Klasse, die nicht Teil von "TARGET" ist, ist wahrscheinlich die Hauptursache dafür, wie auf einige dieser Antworten hingewiesen wird.
Beim Erstellen einer neuen Kakaoklasse ist standardmäßig die Option zum Hinzufügen einer neuen Klasse zum Ziel standardmäßig aktiviert. Sollte dies jedoch aus irgendeinem Grund nicht aktiviert sein, wenn Sie auf "Speichern" klicken, wird dieses Problem auftreten.
Jede dieser Problemumgehungen, durch die die neue Klasse zum Apps-Ziel hinzugefügt wird, kann zur Behebung des Problems beitragen. Diese "Fixes" haben alle 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. Die Korrektur läuft darauf hinaus, dass Ihre "kaputte" Klasse zum Hauptziel hinzugefügt wird
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 löschte oder XCode neu startete. Am Ende habe ich folgende Methode ausprobiert und es funktioniert:
Gehen Sie zu target> Create Target Architectures Only> und setzen Sie Debug und Release auf NO.
Legen Sie dies für alle Projekte im Arbeitsbereich fest und kompilieren Sie es erneut, um sicherzustellen, dass keine anderen Fehler auftreten. Vielleicht nicht sinnvoll, aber irgendwie hat es funktioniert. Während meiner Kompilierung hatte ich andere Probleme wie Linker-Fehler und Symbole, die nicht gefunden wurden.
Um die * .m-Datei dieser Klassenansicht zu öffnen, öffnen Sie "Dateiinspektor anzeigen" und deaktivieren Sie "Zielmitgliedschaft" für dieses Projekt. Klicken Sie anschließend auf "Reinigen" (Menü "Produkt" -> "Bereinigen") und prüfen Sie erneut "Zielmitgliedschaft" für dieses Projekt