我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
我也遇到过同样的问题,虽然TechZen的答案可能确实令人惊讶,但我发现它很难适用于我的情况。
最终,我解决了这个问题,通过对象下列出的控制器(下图中突出显示)链接标签,而不是通过文件所有者。
希望这能有所帮助。
其他回答
为了给这个史诗般的传奇故事锦上添花……
我的视图控制器上面有一个属性 @objc (TheNameOfMyViewController)
这使得所有Outlet崩溃,每个Outlet都有“不符合键值”的错误。这只是IOS12及以下版本的问题。它在iOS 13上运行良好。
删除修饰语解决了这个问题。现在所有的网点都运转正常。
我在一个有两个目标(有自己的MainWindow XIB)的项目中遇到了类似的问题。对我来说,导致这个错误的根本问题是UIViewController类没有包含在第二个项目的资源列表中。例如,界面构建器允许我在主窗口中指定它。Xib,但在运行时系统无法定位类。
例如,cmd-点击有问题的UIViewController类,并仔细检查它是否包含在“Targets”选项卡中。
我也遇到过同样的问题。我在XIB文件中创建了一个tableviewCell,并得到了这种错误。我的问题是我定义了“File’s Owner”类作为我的单元格视图控制器。我只是把它拿出来并设置单元格的类(在xib文件中单击单元格的边界,转到右侧面板上的第三个选项卡,它说class chose your view controller)。
还可以尝试清理代码。
我不得不从模拟器/iPhone中删除应用程序来消除这个错误。
就我而言,
[[NSBundle mainBundle] loadNibNamed:@"NameOfTheSubviewNibFile" owner:self options:nil]
这就是原因。
将此替换为initWithNibName,已解决。