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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

这可能是引用已重命名或删除的Xib Interface组件的情况。重新引用对我来说很有用。

其他回答

在升级到xcode7后,我遇到了swift类的这个问题。使用@objc指令解决了这个问题:

@objc(XXXView控制器)类XXXView控制器

这可能是引用已重命名或删除的Xib Interface组件的情况。重新引用对我来说很有用。

此错误指示已经连接的接口构建器对象在其所有者的源(文件的所有者)中被删除/重命名。

如果你看到一个感叹号,请在界面构建器中控制单击文件的所有者,你需要修复它。

在下图中,你可以看到“aRemovedView”在其右侧有一个感叹号,这是因为我删除了IBOutlet视图对象,而它已经在IB中连接。

这将给出以下错误: 终止应用程序由于未捕获异常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:这个类不是键值编码兼容键aRemovedView。'

它可能来自于这样一个事实,即您拖动并创建了一个出口或操作,但忘记删除它。即使你删除了代码,或者即使你已经创建了足够的cmd+Z,你也需要进入故事板的连接检查器,看看你创建的动作或出口是否仍然在这里。

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