我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
当我试图实现一个表的自定义ViewCell时,我有这个错误。当我突出显示XIB的视图控制器并连接到CellView中的元素时,会导致错误“这个类不是键值编码兼容的键”,一旦我删除了这些,它就摆脱了错误。
删除下图中的连接。
只要确保你只有与表格视图单元格的连接。要检查,单击表视图单元格,并在检查器中寻找您的连接。
其他回答
线程1:“[setValue:forUndefinedKey:]:这个类不符合键xxx的键值编码。”
你可以在以下情况下得到这个错误:
xib + UITableViewHeaderFooterView
当你使用UITableView显示头/脚它扩展了UITableViewHeaderFooterView并连接到。swift文件和
设置文件的属主
正确的方法:
为containerView设置自定义类
我的问题开始后,我改变目标名称。
我自己的自定义UI类将Module名称设置为旧的目标名称。
我把目标名称改为新的,现在可以正常工作了。
有时这与“Inherit From Target”有关,这个值必须设置。对于单个目标应用程序,您只需选择从目标继承。如果您有多个目标,请选择所需的目标。
我犯了个愚蠢的错误。所以我决定在这里分享,希望这能帮助到其他像我一样的人。
我在我的项目中有另一个子模块,我在主模块中命名了一个与另一个类同名的新类,我的新类没有xib文件(100%由代码),但主模块中的另一个类有xib文件。我认为Xcode在主模块中的xib文件错误地链接了新类。
坠机的原因与消息:
这个类对于键tableView来说不符合键值编码。
我得到了同样的错误,当我手动加载一个视图从一个笔尖。结果是我忘记设置视图的所有者。
例如,如果你以以下方式加载一个视图,
let view = Bundle.main.loadNibNamed("MyNibFileName",
owner: nil,
options: nil)?.first as! UIView
然后添加一个IBOutlet, IBOutlet不能被引用,应用程序会因为上面的错误而崩溃。
修复:为视图分配一个所有者。
let view = Bundle.main.loadNibNamed("MyNibFileName",
owner: self,
options: nil)?.first as! UIView