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

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

这是什么意思?

我该怎么解决呢?

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


当前回答

确保你在.m文件中添加了自定义类的实现(甚至是空的),如下所示:

@implementation MySubclass
@end

其他回答

我也遇到过同样的问题,虽然TechZen的答案可能确实令人惊讶,但我发现它很难适用于我的情况。

最终,我解决了这个问题,通过对象下列出的控制器(下图中突出显示)链接标签,而不是通过文件所有者。

希望这能有所帮助。

同样的问题。我的解决方案是在Main storyboard下拉菜单中放置正确的storyboard值。我重新命名了mainstoryboard。故事板,但不重置部署信息。

就我而言,

[[NSBundle mainBundle] loadNibNamed:@"NameOfTheSubviewNibFile" owner:self options:nil]

这就是原因。

将此替换为initWithNibName,已解决。

为了给这个史诗般的传奇故事锦上添花……

我的视图控制器上面有一个属性 @objc (TheNameOfMyViewController)

这使得所有Outlet崩溃,每个Outlet都有“不符合键值”的错误。这只是IOS12及以下版本的问题。它在iOS 13上运行良好。

删除修饰语解决了这个问题。现在所有的网点都运转正常。

您可能需要删除出口,通过从IB绘制到. h文件来重新创建它。