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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

为了给这个史诗般的传奇故事锦上添花……

我的视图控制器上面有一个属性 @objc (TheNameOfMyViewController)

这使得所有Outlet崩溃,每个Outlet都有“不符合键值”的错误。这只是IOS12及以下版本的问题。它在iOS 13上运行良好。

删除修饰语解决了这个问题。现在所有的网点都运转正常。

其他回答

我也遇到过同样的问题。我在XIB文件中创建了一个tableviewCell,并得到了这种错误。我的问题是我定义了“File’s Owner”类作为我的单元格视图控制器。我只是把它拿出来并设置单元格的类(在xib文件中单击单元格的边界,转到右侧面板上的第三个选项卡,它说class chose your view controller)。

还可以尝试清理代码。

另一个棘手的例子:

在IB中,将ViewController添加到storyboard,删除它的视图,并将自定义类设置为“MyViewController”,以便从MyViewController.xib实例化视图

将Storyboard ID指定为相同的“MyViewController”会导致异常。

将故事板ID更改为其他名称可以解决该问题。

我也遇到过同样的问题,虽然TechZen的答案可能确实令人惊讶,但我发现它很难适用于我的情况。

最终,我解决了这个问题,通过对象下列出的控制器(下图中突出显示)链接标签,而不是通过文件所有者。

希望这能有所帮助。

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

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

选择器对象是否未连接?

哈哈,54个答案,没有一个是我的解决方案。谈论一个常见的错误。

在我的情况下,这是因为我在我的VC上有一个选择器对象,并没有为它设置一个出口和动作。

当我只是想看看布局如何时,我经常不连接按钮等。但对于采摘者来说,你似乎做不到这一点。