35

Alright, I'll try and make this brief as possible. I wanted to a UIToolbar above my keyboard, and it took me a while to figure it out, and I eventually did, but when I tried adding function to the buttons previous *next* and done my program would soon not compile.

The entire error message can be seen here:

2012-06-20 05:36:55.276 KegCop[79460:fb03] * Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key done.'

* First throw call stack: (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) terminate called throwing an exception(lldb)

@Abizern suggested I should read the Apple Doc on Key value coding guide. Anyways it's super late, or super early however you look at it. The updated project can be found here: https://github.com/ipatch/KegCop

Just download the zip, and try and build and you will see what I am talking about. The error probably lies somewhere in the ViewControllerWelcome.m file.

4

6 回答 6

69

在您的故事板或 xib(无论您使用哪个)中查找该ViewControllerWelcome对象。此错误的最可能来源是与done该类的代码中不存在的被调用的操作或出口有连接。

于 2012-06-20T11:15:46.973 回答
35

最简单的检查方法是在情节提要视图中按住 Ctrl 键并单击控制器,然后在生成的弹出窗口中查找旁边有黄色警告标记的内容。只需按插座名称旁边的 (x) 即可将其删除。

于 2013-03-17T17:17:11.880 回答
4

如果您使用的是故事板,那么只需单击每个 ViewController 并选择它们的连接检查器。检查是否存在任何感叹号(对于丢失的连接)。

正确删除它们。然后再次运行您的项目。

于 2013-09-18T14:26:10.313 回答
0

我遇到了同样的问题,我使用 xib 作为视图控制器,但后来我删除了它。但是在代码中,连接仍然从已删除的 xib 中获取连接。所以走一走的方法是为viewcontroller创建一个新的xib。然后问题解决了。

于 2013-06-22T07:18:15.547 回答
0

在我的情况下,它是 xcode 上的一些奇怪的缓存,即使所有删除的对 IBOutlets 的引用仍然使它崩溃。IBOutlets 指向我的文件的旧版本,因此甚至没有删除和添加文件或从我的笔尖中删除所有引用出口......

SOLUTION: 关闭 xcode成功了,清理/深度清理项目也可能有所帮助。

于 2015-07-23T23:28:45.890 回答
-2

对于我的情况,我-all_load在“其他链接器标志”中添加了以防止 Xcode 剥离我的库二进制代码。

于 2015-05-13T20:03:36.950 回答