我试图将UILabel与在类中创建的IBOutlet链接起来。

我的应用程序崩溃与以下错误。

这是什么意思?

我该怎么解决呢?

***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'


当前回答

对于我来说,我必须单击文件的Owner对象并导航到连接并删除有问题的连接

其他回答

我的麻烦的原因,是我复制了一个故事板文件(Xcode之外,如果我没有记错),然后所有视图控制器在复制的文件有相同的对象id在原始文件。补救办法是复制粘贴视图控制器,然后它们将获得一个新的object-ID。您可以在Identity Inspector中看到object-ID。

您只需要指定IBOutlet一次,IBOutlet标签您的ivar是不必要的。 你在用你的UIViewController实例化你的NIB吗?在某些时候,你应该调用[SecondView initWithNibName:@"yourNibName" bundle:nil];

我在一个有两个目标(有自己的MainWindow XIB)的项目中遇到了类似的问题。对我来说,导致这个错误的根本问题是UIViewController类没有包含在第二个项目的资源列表中。例如,界面构建器允许我在主窗口中指定它。Xib,但在运行时系统无法定位类。

例如,cmd-点击有问题的UIViewController类,并仔细检查它是否包含在“Targets”选项卡中。

我在故事板中得到这个错误。上面的解决方案似乎不是问题,所以我最终删除了视图控制器,并再次将它添加回来(当然,重新连接segue并重新分配类),这就修复了它。我不知道它到底是什么,但我在这个开始前不久重命名了关联的视图控制器类,所以可能有一些东西。

在处理tableview单元格时,我遇到了相同的错误日志。我发现我的UILabels对文件的所有者和单元格的类都有重复的引用出口(您可以在引用检查器中检查出来)。当我删除对文件所有者的引用时,事情就好了。