Nach dem Upgrade auf Xcode 6 habe ich ein altes Projekt geöffnet (das ein Unterprojekt enthält, also viele Ziele hat) Ich bemerkte, dass kein Link von meinem Storyboard ViewContoller zu den entsprechenden Objekten funktioniert.
Zum Beispiel habe ich einen ViewController mit einem TableView und jetzt kann ich damit nichts tun, da die Verbindung fehlt. Ich kann nicht einmal ein neues IBOutlet im VC neu definieren, da der Pfeil im Storyboard von der VC wird keine Verbindung hergestellt.
Um klarer zu sein:
Die Klasse ist im Abschnitt "Benutzerdefinierte Klasse" definiert, sodass ich das Problem nicht finden kann
Was soll ich tun? Übrigens benutze ich obj-c nicht Swift. Ich habe eine verwandte Antwort gefunden, aber alles über Swift.
Sie können auch sehen, dass die Verbindung zwischen der übergeordneten Ansicht und der benutzerdefinierten Klasse unterbrochen ist (nicht mehr sichtbar), was ein großes Problem darstellt.
Ich hatte genau das gleiche Problem mit der App, an der ich gerade arbeite, indem ich XCode von 5.xxx auf 6.1 aktualisiere. Die Problemumgehung bestand für mich darin, die Referenz aller View-Controller zu entfernen und sie dem Projekt wieder hinzuzufügen ...
Für alle, die sich diesem Problem stellen, ist hier der (nervige) Trick:
Ich kann verstehen, dass diese Dinge wirklich ärgerlich sein könnten, aber es hat für mich funktioniert ... Hoffe, es wird jemand anderem helfen!
Wählen Sie in Ihrer Storyboard-Hierarchie den View Controller aus.
Wählen Sie im rechten Bereich der benutzerdefinierten Klasse Class
die Dropdown-Liste und den gewünschten View-Controller aus.
In Xcode 6.1.1 habe ich ein ähnliches Verhalten festgestellt, als ich versuchte, den ersten Absatz einer neuen Ansicht hinzuzufügen.
Es wurde versucht, die Verweise zu entfernen und die Dateien wie oben vorgeschlagen erneut ohne Erfolg hinzuzufügen.
Was ich jedoch gefunden habe, war das Schreiben der ersten Eigenschaft der neuen Ansicht von Hand. Ich bin gerade reingekommen:
@property NSString *temp;
Ich könnte dann meine Steckdosen auf normale Weise anschließen. Löschen Sie einfach die temporäre Eigenschaft, sobald Sie Ihr erstes Outlet hinzugefügt haben.
Hoffe das hilft.
Es scheint, als würde man zuerst die Steckdose tippen (Swift):
@IBOutlet weak var someViewOutlet: UIView!
und dann von IB die Steckdose nach ganz rechts ziehen, tippen Sie den obigen Code.
Durch den Neustart von Xcode wird das Problem gelöst (manchmal). Verwendung von Xcode 6.1
Vielleicht kann ich helfen. In meinem Fall bestand das Problem darin, dass die viewController.Swift-Datei nicht mit dem StoryBoard verbunden war. Die Lösung besteht darin, auf den oberen Rand der Ansicht im Storyboard neben den 3 Symbolen (View Controller, First Responder und Exit) zu klicken. Sehen Sie sich nun im Utility-Bereich Identity Inspector an und klicken Sie auf "Custom Class" Benutzerdefinierte Ansichtssteuerung.
Hoffe das hilft. Xcode ist hart !!
Hier ist die richtige Lösung, die ich glaube.
Wenn Sie den Controller im Code umbenannt haben, müssen Sie die .xib-Datei aktualisieren.
Ich konnte im Interface Builder keinen Weg finden, also:
Öffnen Sie die .xib-Datei mit einem Texteditor: Klicken Sie mit der rechten Maustaste auf die Datei> Öffnen als> Quellcode
Suchen Sie im <objects>
-Knoten den <placeholder>
-Knoten mit der Eigenschaft placeholderIdentifier="IBFilesOwner"
und ersetzen Sie den Wert in customClass="MyOldControllerName"
durch Ihren neuen Controller-Namen: customClass="MyNewControllerName"
Und alle Ihre IBOutlets funktionieren wieder wie gewohnt.
Vielen Dank an alle, die kommentiert haben.
Es ist ein Fehler von Xcode 6/6.0.1. Die Version 6.1 wurde heruntergeladen und installiert, und das Problem ist verschwunden.
In Xcode 6.3 musste ich Xcode schließen und den Mac neu starten. Der Neustart von Xcode allein hat es für mich nicht getan.
Ich hatte lange Zeit 6.3 und mein Problem war mit neuen Projekten, die ich schuf, um einige Dinge zu testen. Diesmal definitiv kein Upgrade-Problem.
keine Lösung behebte mein Problem, aber ich habe es gelöst durch:
und dann sind die Verkaufsstellen wieder da
Ich hoffe, dass diese Lösung die richtige Lösung für die Menschen ist, die das gleiche Problem haben
Okay, lass uns prüfen, ob es das Fehlen eines Modulnamens ist.
2.Klicken Sie außerhalb in ein anderes Feld. Wenn Sie zum Modulfeld zurückkehren, wird möglicherweise keine angezeigt. Jetzt wird ein Dropdown-Menü für Ihren Projektnamen angezeigt.
Wenn es noch Probleme gibt, werde ich Fotos posten.
Scheint ein Workspace-Problem zu sein. Versuchen Sie, das Projekt aus einem Arbeitsbereich zu entfernen und es erneut hinzuzufügen. Es hat in meinem Fall geholfen.
Ich habe Xcode 6.3 und sah ein ähnliches Problem. Schließlich lösten einige Änderungen in der .h-Datei mein Problem. Wenn für Ihre Schnittstelle IBOutlet definiert ist
@interface NavigationViewController :UIViewController
{
IBOutlet UILabel *lblName;
}
Ändern Sie dies in und in der .m-Datei. add @synthesize lblName;
@interface NavigationViewController :UIViewController
{
__weak UILabel *lblName;
}
@property (nonatomic, weak) IBOutlet UILabel *lblName;
Ich hatte das gleiche Problem, und es gab keinen Sichtausgang, auf den ich mich verlinken konnte. Die einzige Möglichkeit, das Problem zu beheben, bestand darin, die Besitzerklasse der XIB-Datei in "UIViewController" zu ändern, den Link zu erstellen und ihn dann wieder in meine beabsichtigte benutzerdefinierte Ansichtskontrollerklasse zu ändern. Der Link blieb und alles war gut.
Versuchen Sie vielleicht, den Auslass aus dem Menü im Storyboard (in Ihrem Screenshot) zu löschen, und ziehen Sie ihn erneut vom Element.
Ich hatte das gleiche Problem.
Es stellt sich heraus, dass ich meine View Controller-Klasse und den Dateinamen umbenannt habe. Im Storyboard hatte ich im rechten Bereich Benutzerdefinierte Klasse -> Klasse den veralteten Wert. Daher stimmten die IBOutlets nicht überein, da in der fehlenden Klasse keine vorhanden war. Dort erwartete sie die definierten Outlets.
Durch das Einfügen des korrekten Klassennamens des View Controllers im Feld Benutzerdefinierte Klasse im rechten Bereich wurde mein Problem behoben.
XCode muss ausführlicher sein, wenn in den Feldern der benutzerdefinierten Klasse ein ungültiger Klassenname vorhanden ist.
Ich hatte dies, beeinflusste alle Projekte auf meiner Maschine, auf Swift und Objective C und machte mich seit Ewigkeiten verrückt. Schließlich bemerkte ich auch, dass ich den Refraktor nicht verwenden konnte, um Klassen umzubenennen.
Der Fix für mich war:
finden . -name 'xcuserdata' -exec rm -rf {} \;
Wenn Sie dies von Hand tun möchten, führen Sie für alle Ihre Projekte die folgenden Schritte aus
Alles wurde wieder lebendig!