我试图将UILabel与在类中创建的IBOutlet链接起来。

我的应用程序崩溃与以下错误。

这是什么意思?

我该怎么解决呢?

***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'


当前回答

在我的情况下,这是一个错误在故事板源代码,遵循以下步骤:

首先以源代码的形式打开故事板 搜索<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标签之间的连接;)

其他回答

在我的例子中,它是一个IBOutlet在ViewController中的属性名。m被改变了,但是Storyboard中的那个没有改变。在ViewController中重新引入IBOutlet。M每ctrl拖动解决了这个问题。我还注意到在XCode中找到这种“孤立”iboutlet的方法:(请看图片)那些不是“孤立”的iboutlet有同心圆而不是行号。

我在一个有两个目标(有自己的MainWindow XIB)的项目中遇到了类似的问题。对我来说,导致这个错误的根本问题是UIViewController类没有包含在第二个项目的资源列表中。例如,界面构建器允许我在主窗口中指定它。Xib,但在运行时系统无法定位类。

例如,cmd-点击有问题的UIViewController类,并仔细检查它是否包含在“Targets”选项卡中。

您可能需要删除出口,通过从IB绘制到. h文件来重新创建它。

当一个UI标签或其他UI元素被视图控制器类中的两个变量引用,而我删除了其中一个变量时,我也会遇到这种情况。

我也有同样的问题。我重置了模拟器。删除和添加按钮控件。终于搞干净了。:)由于堆栈溢出。不知怎么的,我的代码变得很好,开始工作。