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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

我记得在过去也遇到过类似的问题,我通过改变一行来解决它:

_vicMain = [[UIViewController alloc] initWithNibName:@"vicMainScreen" bundle:nil];

成:

#include "vicLogin_iPad.h"       // This is the H file of the class holding the code for
                                 // processing all the IBOUtlets for the Login screen
.
.
.

_vicMain = [[vicLogin_iPad alloc] initWithNibName:@"vicMainScreen" bundle:nil];

注意,我最初声明UIViewController初始化我的_vicMain,在顶部使用弹出窗口后,我意识到两者都使用相同的UIViewController。

By:

1)包括你的类(子视图),以及相同的模块,正在做上面的_vicMain(这是一个视图控制器对象/变量),即它是“vicLogin_iPad.h”在我的情况下,和:

2)使用你的自定义构造函数来声明对象(例如,而不是“xxx = [UIViewController alloc]…”,使用“xxx = [vicLogin_iPad alloc]…””。

问题解决了。

我希望这能有所帮助,因为这是一个痛苦的定位与缺乏细节的错误消息…

问候 Heider殉死

其他回答

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

有时这与“Inherit From Target”有关,这个值必须设置。对于单个目标应用程序,您只需选择从目标继承。如果您有多个目标,请选择所需的目标。

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

对我来说。合并后,xib文件中没有丢失的输出。

Shift + Command + K

解决了我的问题。我清理了我的项目并重建。

NSUnknownKeyException error

'NSUnknownKeyException', reason: this class is not key value coding-compliant for the key

我得到这个错误时。xib文件(例如。TableViewCell.xib)具有与单元格类相同的名称(例如。TableViewCell.swift)

正确的做法是:

TableViewCell.swift -> View.swift <-> View.xib