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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

如果你有一个带有iboutlet的自定义UIViewController子类,它会导致问题,我发现唯一能消除错误的步骤是

1 .修改类为UIViewController

断开所有的插座(它们现在都有黄色警告三角形)-仅仅断开有问题的插座可能就足够了。

.3执行所有标准步骤-↑⌘K,删除派生数据(,祈祷垫,担忧珠)

.4启动应用程序-进入有问题的场景。

.5关闭应用程序,返回接口生成器,将类更改为自定义类名。

6重新连接电源插座。

启动应用程序&这通常会清除键值遵从性问题。

其他回答

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

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

我也有同样的问题。这发生在我的项目中,因为我改变了我的产品名称,但在接口构建器中,我有旧的名称为模块,这导致崩溃,所以一定要检查所有xib模块名称也已更改或没有。

如果你有一个带有iboutlet的自定义UIViewController子类,它会导致问题,我发现唯一能消除错误的步骤是

1 .修改类为UIViewController

断开所有的插座(它们现在都有黄色警告三角形)-仅仅断开有问题的插座可能就足够了。

.3执行所有标准步骤-↑⌘K,删除派生数据(,祈祷垫,担忧珠)

.4启动应用程序-进入有问题的场景。

.5关闭应用程序,返回接口生成器,将类更改为自定义类名。

6重新连接电源插座。

启动应用程序&这通常会清除键值遵从性问题。

这可能意味着您试图使用开头没有设计的排序描述符。如:

黑array valueForKeyPath: @“distinctUnionOfObjects.self铝”

实际上一定是:

(数组valueForKeyPath: @“@distinctUnionOfObjects.self”)