从我的主视图 Controller 显示 EditViewController 时出现运行时错误:
'[<EditViewController 0x7fbef90> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key saveChanges.'
我已经完成了我能想到的所有不同的 Google/Stack Overflow 搜索,我的所有结果都涉及标签栏或 Interface Builder 中的错误连接。我的项目没有选项卡栏,我删除了 Nib 中每个对象的所有连接(除了从文件所有者、EditViewController 到 View 的连接)。 EditViewController 实际上有一个名为 -(IBAction)saveChanges
的方法。
这让我发疯,我不知道我到底应该做什么。提前致谢。
最佳答案
从顶部 view
到 IBOutlet
可能没有任何无效连接,但检查 File's Owner
和 First Responder
可能的 IBAction
与被注释掉或不存在的方法有联系。
另一个想法是手动断开并重新连接每个连接。我遇到了一些问题,我在 IB 中连接后将 IBAction 方法从 - (IBAction)doStuff
更改为 - (IBAction)doStuff:(id)sender
但连接仍然存在当它应该说 doStuff:
时说 doStuff
。那个冒号看起来不太像(而且在 IB 中很难区分)但它将操作更改为 @selector(doStuff)
,它针对的是一个不存在的方法。
重新连接没有坏处,并且已成为我解决大多数 xib 问题的第一个故障排除步骤。
另一种找到它的确定方法是 grep
(来自终端):
[ 22:20 jon@host ~ ]$ grep -RH "saveChanges" /path/to/${PROJECT_DIR}/*
关于ios - UIViewController 与键 XXXXX 的键值编码不兼容。 IB 中没有错误的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7782256/