我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
我试图将UILabel与在类中创建的IBOutlet链接起来。
我的应用程序崩溃与以下错误。
这是什么意思?
我该怎么解决呢?
***终止应用由于未捕获异常'NSUnknownKeyException',原因:'[<UIViewController 0x6e36ae0> setValue:forUndefinedKey:]:这个类不是键值编码兼容的键XXX。'
当前回答
线程1:“[setValue:forUndefinedKey:]:这个类不符合键xxx的键值编码。”
你可以在以下情况下得到这个错误:
xib + UITableViewHeaderFooterView
当你使用UITableView显示头/脚它扩展了UITableViewHeaderFooterView并连接到。swift文件和
设置文件的属主
正确的方法:
为containerView设置自定义类
其他回答
另一个棘手的例子:
在IB中,将ViewController添加到storyboard,删除它的视图,并将自定义类设置为“MyViewController”,以便从MyViewController.xib实例化视图
将Storyboard ID指定为相同的“MyViewController”会导致异常。
将故事板ID更改为其他名称可以解决该问题。
如果你有一个带有iboutlet的自定义UIViewController子类,它会导致问题,我发现唯一能消除错误的步骤是
1 .修改类为UIViewController
断开所有的插座(它们现在都有黄色警告三角形)-仅仅断开有问题的插座可能就足够了。
.3执行所有标准步骤-↑⌘K,删除派生数据(,祈祷垫,担忧珠)
.4启动应用程序-进入有问题的场景。
.5关闭应用程序,返回接口生成器,将类更改为自定义类名。
6重新连接电源插座。
启动应用程序&这通常会清除键值遵从性问题。
在升级到xcode7后,我遇到了swift类的这个问题。使用@objc指令解决了这个问题:
@objc(XXXView控制器)类XXXView控制器
我也有同样的问题,原因是在接口生成器中指定了一个模块(而不是让它为空)。所以,当我使用一个不同于我设置的模块时,应用程序会崩溃:S…希望这能帮助别人,因为我的问题不是由于损坏或过时的出口!
我也有这个问题。我将带有IBOutlet的视图从一个xib文件复制到另一个xib文件。即使我已经删除了旧的引用并创建了一个新的引用,这个错误仍然发生。
我最终重新启动xcode来解决这个问题。