好的,我会尝试尽可能简短。我想在我的键盘上方找到一个UIToolbar,我花了一段时间来弄明白,我最终做了,但是当我尝试将功能添加到按钮上一个 * next *和完成时我的程序很快就会编译。
可以在此处看到整个错误消息:
2012-06-20 05:36:55.276 KegCop [79460:fb03] * 由于未捕获的异常'NSUnknownKeyException'而终止应用程序,原因:'[setValue:forUndefinedKey:]:此类是对于完成的密钥,不符合密钥值编码。'
* 第一次抛出调用堆栈: (0x134a022 0x1733cd6 0x1349ee1 0xd31022 0xca2f6b 0xca2edb 0xcbdd50 0x5a571a 0x134bdea 0x12b57f1 0x5a426e 0x7adeef 0x7ae03e 0x382d7a 0x382ff8 0x38217f 0x391183 0x391c38 0x385634 0x1f84ef5 0x131e195 0x1282ff2 0x12818da 0x1280d84 0x1280c9b 0x381c65 0x383626 0x2a8d 0x29f5为0x1) 终止调用抛出异常(lldb)
@Abizern建议我应该阅读Apple Doc on Key value coding guide。无论如何,它是超级晚,或超级早,但你看它。更新的项目可在此处找到:https://github.com/ipatch/KegCop
只需下载zip,然后尝试构建,您将看到我在说什么。该错误可能位于 ViewControllerWelcome.m 文件中。
答案 0 :(得分:62)
查看ViewControllerWelcome
对象的storyboard或xib(无论您使用哪个)。此错误的最可能的来源是某些内容与名为done
的操作或出口连接,该类在该类的代码中不存在。
答案 1 :(得分:33)
最简单的检查方法是在故事板视图中按住Ctrl并单击您的控制器,并在弹出的窗口中查找一些旁边有黄色警告标记的内容。 只需按下插座名称旁边的(x)即可将其删除。
答案 2 :(得分:3)
如果您正在使用故事板,则只需单击每个ViewController并选择它们的连接检查器。检查是否有任何感叹号(连接丢失)。
正确删除它们。然后再次运行项目。
答案 3 :(得分:0)
我遇到了同样的问题,我使用xib作为viewcontroller,但后来我删除了它。但是在代码中,连接仍然从已删除的xib获得连接。因此,四处走动的方法是为viewcontroller创建一个新的xib。然后问题解决了。
答案 4 :(得分:0)
在我的情况下,它是xcode上的一些奇怪的缓存,即使所有删除的对IBOutlets的引用仍然使它崩溃。 IBOutlets指向我的文件的旧版本,所以甚至没有删除和添加回文件或从我的笔尖删除所有引用插件...
SOLUTION:
关闭xcode 成功,同时清理/深度清理项目可能有所帮助。
答案 5 :(得分:-2)
根据我的情况,我在“其他链接器标志”中添加了-all_load
,以防止Xcode剥离我的库二进制代码。