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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

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

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

其他回答

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

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

它可能来自于这样一个事实,即您拖动并创建了一个出口或操作,但忘记删除它。即使你删除了代码,或者即使你已经创建了足够的cmd+Z,你也需要进入故事板的连接检查器,看看你创建的动作或出口是否仍然在这里。

在我的例子中,是模块被指定到错误的目标。简单地删除模块名并从目标中检查Inherit module就可以了。

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

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