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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

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

纠正它:

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

希望这能帮助到一些人。

其他回答

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

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

我也有这个问题。我将带有IBOutlet的视图从一个xib文件复制到另一个xib文件。即使我已经删除了旧的引用并创建了一个新的引用,这个错误仍然发生。

我最终重新启动xcode来解决这个问题。

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

纠正它:

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

希望这能帮助到一些人。

当我的视图控制器最初有一个.xib文件时,这种情况发生在我身上,但现在是以编程方式创建的。

尽管我已经从这个项目中删除了.xib文件。用户的iPhone/iPad可能包含这个视图控制器的.xib文件。

尝试加载.xib文件通常会导致以下崩溃:

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x18afe0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key welcomeLabel.'

以编程方式创建时的解决方案可能是这样的:

-(void)loadView {
    // Ensure that we don't load an .xib file for this viewcontroller
    self.view = [UIView new];
}

我不得不从模拟器/iPhone中删除应用程序来消除这个错误。