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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

我犯了个愚蠢的错误。所以我决定在这里分享,希望这能帮助到其他像我一样的人。

我在我的项目中有另一个子模块,我在主模块中命名了一个与另一个类同名的新类,我的新类没有xib文件(100%由代码),但主模块中的另一个类有xib文件。我认为Xcode在主模块中的xib文件错误地链接了新类。

坠机的原因与消息:

这个类对于键tableView来说不符合键值编码。

其他回答

在我的例子中,我已经向故事板添加了一个ViewController,但我没有在设计器中为它分配一个故事板ID。一旦我给它一个ID,它就工作了。

使用Xamarin/Visual Studio 2015。

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

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

我在storyboard和swift类中遇到了这个问题。使用@objc指令解决了这个问题:

@objc(MyViewController) class MyViewController

选择器对象是否未连接?

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

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

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

在我的例子中,它是一个IBOutlet在ViewController中的属性名。m被改变了,但是Storyboard中的那个没有改变。在ViewController中重新引入IBOutlet。M每ctrl拖动解决了这个问题。我还注意到在XCode中找到这种“孤立”iboutlet的方法:(请看图片)那些不是“孤立”的iboutlet有同心圆而不是行号。