Normalerweise, wenn mir das passiert, funktioniert @TechZen's Antwort. Gestern habe ich jedoch eine peinlich lange Zeit damit verbracht, mit den Storyboard-Verbindungen herumzuspielen, nur um festzustellen, dass das Problem in meinem Code lag.
Ich habe einen benutzerdefinierten View Controller, der verschiedene Layouts in meinem Storyboard steuert, aber eines der Layouts benötigte ein spezielles Label, das von den anderen nicht verwendet wurde. Also habe ich eine Unterklasse erstellt wie folgt:
@interface MyViewControllerSubclass : MyViewController
Dann habe ich eine private Eigenschaft in MyViewControllerSubclass.m hinzugefügt:
@interface MyViewController ()
@property (weak, nonatomic) IBOutlet UILabel *crashesApp;
@end
Xcode hat mir problemlos erlaubt, dieses IBOutlet zu verbinden, aber jedes Mal, wenn die Ansicht geladen wurde, stürzte die App mit der alten Meldung "nicht schlüsselwertkonform für den Schlüssel 'chrashesApp'" ab.
Die Lösung, die im Nachhinein halb offensichtlich war, bestand darin, die private Kategorie so zu ändern, dass der richtige Name verwendet wird, nämlich der der Unterklasse:
@interface MyViewControllerSubclass ()
@property (weak, nonatomic) IBOutlet UILabel *noMoreCrashing;
@end