错误:由于未捕获的异常'NSUnknownKeyException'而终止应用,原因:'[ 的setValue:forUndefinedKey:]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了错误:由于未捕获的异常'NSUnknownKeyException'而终止应用,原因:'[ 的setValue:forUndefinedKey:]相关的知识,希望对你有一定的参考价值。
完整错误是:由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类不是密钥的密钥值编码兼容。
所以我一直在尝试其他人一直在说的类似问题。我已经尝试摆脱项目中对landscapeView的每一次提及,包括ViewController_iPhone.xib中FIle所有者中的Connections,然后我通过在超类ViewController中创建插座来开始新鲜事(因为我想使用landscapeView和portraitView for iPad另外)然后我将ViewController_iPhone.xib和ViewController_iPad.xib中的连接分别设置为每个名为Landscape的UIView,我仍然会收到此错误。
我刚刚开始进行应用程序开发,所以我正在尝试为支持iPhone和iPad上所有方向的应用程序制作模板。谢谢你的帮助
编辑:这是我的所有app委托h和m和main.m:I am getting the Applications are expected to have a root view controller at the end of application launch error的链接
编辑2:所以我也尝试使viewView成为ViewController的一个属性,我在ViewController.m中创建了一个setter方法,但它仍然有同样的问题。
我发现这个错误发生的最常见的地方是当你从一个不是xib所有者的类中的xib实例化一个视图时。
我的意思是你可能会调用类似的东西:
[[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil];
你正在改变owner
,所以你必须确保self
引用的类具有“MyView”所需的所有IBOutlet属性。通常这是在Interface Builder中完成的,但在这种情况下,您将以编程方式设置所有者,这意味着您无法在IB中建立连接。当IBOutlets不存在时,应用程序会尝试建立这些连接并失败,从而给出您看到的错误。
我的建议(不知道你到目前为止给出的任何信息)是检查你是否在没有正确的IBOutlets的情况下进行了这个调用。
我不得不为主界面删除NIB或XIB(或者这个迭代的任何东西)。
如果Apple在对毫无防备的公众发布它之前对其进行全面测试,那肯定会很好。他们本可以通过多种方式解决问题;但他们选择了运行时崩溃和模糊[无意义]错误消息。
两个主要原因如下
- 您的iboutlet可能会破坏请检查故事板或IB。
- 如果您没有为自定义类选择模块,请查看您的故事板。
我发现我在viewcontroller.h中删除了一个WebView,但是没有删除指向这个WebView的xib文件!
以上是关于错误:由于未捕获的异常'NSUnknownKeyException'而终止应用,原因:'[ 的setValue:forUndefinedKey:]的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常“NSInternalInconsistencyException”错误而终止应用程序
由于未捕获的异常“FirebaseShutdown”而终止应用程序,原因:“Firebase 错误
由于未捕获的异常“NSObjectInaccessibleException”而终止应用程序,原因:“CoreData 无法完成错误”