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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

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

其他回答

对于连接属性中的所有UI元素,检查outlet及其对应的头文件。h中的属性。 在.h文件中可能缺少一个或多个属性条目。

我因为不同的原因遇到了同样的问题:我使用主故事板作为启动屏幕文件。我猜如果你使用一个故事板作为启动屏幕文件,它不应该连接到视图控制器,因为它还没有被加载。

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

如果您试图观察一个不存在的值,请注意。

这发生在我身上只是因为我正在观察一个文本字段的“文本”属性,而我应该观察的是“文本”属性。

还有其他问题,你可以在其他答案中看到。 我为自己创建这个错误的方式是,我从头开始一个项目,首先删除故事板的初始场景,然后将另一个项目的场景粘贴到我的故事板中。

那样做没有问题。你只需要在你的故事板中添加一个入口点,也就是检查你喜欢的任何视图控制器上的初始视图控制器。否则它将是一个灰色的场景,并向您抛出一个错误。