我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
我发现了另一种可能导致问题的可能性。
当使用initWithNibName方法使用错误的xib名称时,也会导致这种崩溃。
例如,您选择更改一个xib文件的名称,然后忘记将“initWithNibName”方法中使用的名称更改为相同的名称。
其他回答
您可能需要删除出口,通过从IB绘制到. h文件来重新创建它。
就我而言,
[[NSBundle mainBundle] loadNibNamed:@"NameOfTheSubviewNibFile" owner:self options:nil]
这就是原因。
将此替换为initWithNibName,已解决。
当我试图实现一个表的自定义ViewCell时,我有这个错误。当我突出显示XIB的视图控制器并连接到CellView中的元素时,会导致错误“这个类不是键值编码兼容的键”,一旦我删除了这些,它就摆脱了错误。
删除下图中的连接。
只要确保你只有与表格视图单元格的连接。要检查,单击表视图单元格,并在检查器中寻找您的连接。
我从头文件中删除了该属性。我找不到它的任何引用,但调试错误仍然引用它。我发现nib文件仍然有对它的引用。我删除了引用它的块,一切都修复了。
在Project Navigator中,
找到Nib (xib)文件。右键单击并查看源。我删除了下面的完整部分
<object class="IBConnectionRecord">
<object class="IBCocoaTouchOutletConnection" key="connection">
<string key="label">DeleteLabel</string>
<reference key="source" ref="372490531"/>
<reference key="destination" ref="774585933"/>
</object>
<int key="connectionID">20</int>
</object>
此错误指示已经连接的接口构建器对象在其所有者的源(文件的所有者)中被删除/重命名。
如果你看到一个感叹号,请在界面构建器中控制单击文件的所有者,你需要修复它。
在下图中,你可以看到“aRemovedView”在其右侧有一个感叹号,这是因为我删除了IBOutlet视图对象,而它已经在IB中连接。
这将给出以下错误: 终止应用程序由于未捕获异常'NSUnknownKeyException',原因:'[setValue:forUndefinedKey:]:这个类不是键值编码兼容键aRemovedView。'