我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
对于连接属性中的所有UI元素,检查outlet及其对应的头文件。h中的属性。 在.h文件中可能缺少一个或多个属性条目。
其他回答
我尝试了这篇文章中的每一个选项。唯一为我解决这个问题的是改变我的自定义视图xib文件的名称。
我的自定义视图和xib有相同的名称。重命名xib修复了它。
同样的问题。我的解决方案是在Main storyboard下拉菜单中放置正确的storyboard值。我重新命名了mainstoryboard。故事板,但不重置部署信息。
我不得不从模拟器/iPhone中删除应用程序来消除这个错误。
在我的情况下,这是一个错误在故事板源代码,遵循以下步骤:
首先以源代码的形式打开故事板 搜索<connections> 删除不需要的连接
例如:
<connections>
<outlet property="mapPostsView" destination="4EV-NK-Bhn" id="ubM-Z6-mwl"/>
<outlet property="mapView" destination="kx6-TV-oQg" id="4wY-jv-Ih6"/>
<outlet property="sidebarButton" destination="6UH-BZ-60q" id="8Yz-5G-HpY"/>
</connections>
如你所见,这些是你的代码变量名和storyboard布局xml标签之间的连接;)
我记得在过去也遇到过类似的问题,我通过改变一行来解决它:
_vicMain = [[UIViewController alloc] initWithNibName:@"vicMainScreen" bundle:nil];
成:
#include "vicLogin_iPad.h" // This is the H file of the class holding the code for
// processing all the IBOUtlets for the Login screen
.
.
.
_vicMain = [[vicLogin_iPad alloc] initWithNibName:@"vicMainScreen" bundle:nil];
注意,我最初声明UIViewController初始化我的_vicMain,在顶部使用弹出窗口后,我意识到两者都使用相同的UIViewController。
By:
1)包括你的类(子视图),以及相同的模块,正在做上面的_vicMain(这是一个视图控制器对象/变量),即它是“vicLogin_iPad.h”在我的情况下,和:
2)使用你的自定义构造函数来声明对象(例如,而不是“xxx = [UIViewController alloc]…”,使用“xxx = [vicLogin_iPad alloc]…””。
问题解决了。
我希望这能有所帮助,因为这是一个痛苦的定位与缺乏细节的错误消息…
问候 Heider殉死