我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
对于我来说,我必须单击文件的Owner对象并导航到连接并删除有问题的连接
其他回答
看看其他的答案,似乎有很多事情可以导致这个错误。这里还有一个。
如果你
拥有自定义视图 添加了@IBInspectable属性 然后又删除了
那么您也可能会得到类似的错误
在[您的自定义]上设置(xxx)用户定义的被检查属性失败 视图)……:这个类不是键值编码兼容的 [xxx]。
解决方案是删除旧属性。
打开类的Identity检查器,在User Defined Runtime Attributes下选择属性名,然后按减号按钮(-)。
确保你在.m文件中添加了自定义类的实现(甚至是空的),如下所示:
@implementation MySubclass
@end
您只需要指定IBOutlet一次,IBOutlet标签您的ivar是不必要的。 你在用你的UIViewController实例化你的NIB吗?在某些时候,你应该调用[SecondView initWithNibName:@"yourNibName" bundle:nil];
我犯了同样的错误,只是形式略有不同:
在接口构建器中,我有一个自定义子控制器的导航控制器。这个类的名称设置正确,但是NIB名称(选择子控制器,转到属性检查器)被设置为错误的文件(基本上是一个不同的目标)。将其重置为正确的文件名解决了这个问题。
另一个棘手的例子:
在IB中,将ViewController添加到storyboard,删除它的视图,并将自定义类设置为“MyViewController”,以便从MyViewController.xib实例化视图
将Storyboard ID指定为相同的“MyViewController”会导致异常。
将故事板ID更改为其他名称可以解决该问题。