我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
我在故事板中得到这个错误。上面的解决方案似乎不是问题,所以我最终删除了视图控制器,并再次将它添加回来(当然,重新连接segue并重新分配类),这就修复了它。我不知道它到底是什么,但我在这个开始前不久重命名了关联的视图控制器类,所以可能有一些东西。
其他回答
我在一个有两个目标(有自己的MainWindow XIB)的项目中遇到了类似的问题。对我来说,导致这个错误的根本问题是UIViewController类没有包含在第二个项目的资源列表中。例如,界面构建器允许我在主窗口中指定它。Xib,但在运行时系统无法定位类。
例如,cmd-点击有问题的UIViewController类,并仔细检查它是否包含在“Targets”选项卡中。
为了给这个史诗般的传奇故事锦上添花……
我的视图控制器上面有一个属性 @objc (TheNameOfMyViewController)
这使得所有Outlet崩溃,每个Outlet都有“不符合键值”的错误。这只是IOS12及以下版本的问题。它在iOS 13上运行良好。
删除修饰语解决了这个问题。现在所有的网点都运转正常。
您只需要指定IBOutlet一次,IBOutlet标签您的ivar是不必要的。 你在用你的UIViewController实例化你的NIB吗?在某些时候,你应该调用[SecondView initWithNibName:@"yourNibName" bundle:nil];
我通过两件事解决了这个问题:
视图的固定类引用:
重新进口所有Outlets:
在我的例子中,是模块被指定到错误的目标。简单地删除模块名并从目标中检查Inherit module就可以了。