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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

正如@FranticRock提到的,这个帖子真的是一个史诗般的传奇故事。

对我来说

出水口连接正确 “Inherit From Target”有一个正确的值,这意味着模块被正确添加

在我的案例中导致崩溃的原因是标识检查器下的用户定义运行时属性

我有一个视图,以某种方式有三个属性borderColor, borderWidth和cornerRadius

从视图中删除这些属性就解决了这个问题。

其他回答

我也有这个问题,这是由于重命名一个视图通过创建一个新的出口。你可能在故事板中有旧的连接出口。

您需要做的是从故事板中删除旧的出口。

转到故事板。 点击“Show Code Review”按钮(上面有<- ->符号的按钮,就在Show /hide导航器的左边)。 搜索“connections”标签。 在“connections”标签中寻找“outlet”标签,并将“property”属性设置为您在Exception中获得的名称。 去掉那个出口标签。 点击“Command + B”,享受吧!

我的方法和杰拉德·格伦迪类似。在使用XIB创建自定义UITableViewCell时,我错误地将自定义类名称应用到文件的所有者而不是UITableViewCell。将类应用到画布上的UITableViewCell并将IBOutlet属性连接到它上解决了这个问题。

我也有同样的问题。我重置了模拟器。删除和添加按钮控件。终于搞干净了。:)由于堆栈溢出。不知怎么的,我的代码变得很好,开始工作。

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

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

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