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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

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

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

其他回答

我尝试了这篇文章中的每一个选项。唯一为我解决这个问题的是改变我的自定义视图xib文件的名称。

我的自定义视图和xib有相同的名称。重命名xib修复了它。

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

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

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

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

线程1:“[setValue:forUndefinedKey:]:这个类不符合键xxx的键值编码。”

你可以在以下情况下得到这个错误:

xib + UITableViewHeaderFooterView

当你使用UITableView显示头/脚它扩展了UITableViewHeaderFooterView并连接到。swift文件和

设置文件的属主

正确的方法:

为containerView设置自定义类

我发现了另一种可能导致问题的可能性。

当使用initWithNibName方法使用错误的xib名称时,也会导致这种崩溃。

例如,您选择更改一个xib文件的名称,然后忘记将“initWithNibName”方法中使用的名称更改为相同的名称。

我也有同样的症状。根本原因是源文件的“目标成员资格”没有设置为正确的目标。我假设这意味着我的类不会被构建并包含在我的应用程序中。

纠正它:

突出显示你的.m文件。 在右窗格中,选择文件检查器。 在“Target Membership”部分下,确保选中了适当的构建目标。

希望这能帮助到一些人。