Cocoa 如何追踪KVC异常的来源:此类不符合键工具栏的键值编码要求?

Cocoa 如何追踪KVC异常的来源:此类不符合键工具栏的键值编码要求?,cocoa,cocoa-touch,xcode,debugging,key-value-coding,Cocoa,Cocoa Touch,Xcode,Debugging,Key Value Coding,我在尝试运行我的应用程序时遇到此错误: 2010-04-29 13:49:01.355 MyApp[56123:207] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<MyViewController 0x5112b10> setValue:forUndefinedKey:]: this class is not key value coding-compliant

我在尝试运行我的应用程序时遇到此错误:

2010-04-29 13:49:01.355 MyApp[56123:207] *** Terminating app due to uncaught
exception 'NSUnknownKeyException', reason: '[<MyViewController 0x5112b10>
setValue:forUndefinedKey:]: this class is not key value coding-compliant for 
the key toolbar.'
2010-04-29 13:49:01.355我的应用程序[56123:207]***由于未捕获而终止应用程序
异常“NSUnknownKeyException”,原因:'[
setValue:forUndefinedKey::此类不符合的键值编码
“关键工具栏。”
MyViewController
过去有一个名为“toolbar”的
IBOutlet
连接到nib中的
UIToolbar
对象。我决定不再需要工具栏或笔尖,所以我将它们从项目中删除。但Xcode似乎仍然希望引用“工具栏”

如果我不再使用笔尖,对工具栏的引用会在哪里?我可以合成一个虚拟的“工具栏”属性来安抚Xcode,但我想避免这种丑陋的攻击


编辑:奇怪的是,当我在设备上而不是模拟器上运行代码时,没有引发异常。另外,当我为
MyViewController
(不包含工具栏)使用一个简单的nib时,异常消失了。我正在使用git,当我回去运行以前提交的代码时,
MyViewController
甚至有一个工具栏或nib,那些奇怪的人也给出了例外。那段代码过去运行得很好。我确实认为这个异常与Xcode和模拟器以及我从项目中删除不需要的nib时遗留下来的某种状态有关。

Xcode是一个IDE。当你的应用程序运行时,不是Xcode要求你的视图控制器提供工具栏

有两种方法可以解决此问题:

  • objc\u exception\u throw
    上设置断点,然后在调试器下运行应用程序
  • -[NSObject(NSKeyValueCoding)valueforundeinedkey:
    上设置断点,然后在调试器下运行应用程序

  • 无论哪种方式,当异常发生时,调试器都会中断你的应用程序。查看堆栈跟踪以查看是什么发送了
    valueForKey:
    消息。

    谢谢,彼得。我会这样做,但如何设置这些断点?我没有在代码中显式调用这些函数。