我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
在我的例子中,这是因为引用了错误的Nib:
BMTester *viewController = [[BMTester alloc] initWithNibName:@"WrongNibName" bundle:nil];
其他回答
对我来说。合并后,xib文件中没有丢失的输出。
Shift + Command + K
解决了我的问题。我清理了我的项目并重建。
就我而言,
[[NSBundle mainBundle] loadNibNamed:@"NameOfTheSubviewNibFile" owner:self options:nil]
这就是原因。
将此替换为initWithNibName,已解决。
我在故事板中得到这个错误。上面的解决方案似乎不是问题,所以我最终删除了视图控制器,并再次将它添加回来(当然,重新连接segue并重新分配类),这就修复了它。我不知道它到底是什么,但我在这个开始前不久重命名了关联的视图控制器类,所以可能有一些东西。
通过在Storyboard/xib接口中选择有问题的对象并打开连接检查器(视图->Utilities->显示连接检查器)来检查是否有丢失的引用出口。如果您确实删除了不需要的连接,您应该可以继续。
我发现了另一种可能导致问题的可能性。
当使用initWithNibName方法使用错误的xib名称时,也会导致这种崩溃。
例如,您选择更改一个xib文件的名称,然后忘记将“initWithNibName”方法中使用的名称更改为相同的名称。