我对 xcode 很陌生...制作了一个应用程序(简单的计算器)工作非常好(在模拟器和设备上)。 当我在 Target 的 summary 选项中设置主界面时,在启动模拟器时出现以下错误:
2012-04-14 12:17:27.123 CalcTest[27550:f803] * Terminating app due to uncaught exception 'NSUnknownKeyException',
reason: '
[<UIApplication 0x6a14650> setValue:forUndefinedKey:]
: this class is not key value coding-compliant for the key calculatorScreen.'* First throw call stack: (0x12db022 0x18f8cd6 0x12daee1 0xcc2022 0xc33f6b 0xc33edb 0xc4ed50 0x53671a 0x12dcdea 0x12467f1 0x53526e 0x536eb7 0x313ce1 0x313ff8 0x31317f 0x322183 0x322c38 0x316634 0x27fcef5 0x12af195 0x1213ff2 0x12128da 0x1211d84 0x1211c9b 0x312c65 0x314626 0x1bad 0x1b15 0x1) terminate called throwing an exception(lldb)
为了找到问题,我开始了一个新的基于 View 的项目。
在模拟器上运行空的新项目 -->works,
但是当我将主界面设置为 ViewController 时,在 summary -->模拟器崩溃了
2012-04-14 12:11:17.492 crash[27494:f803] * Terminating app due to uncaught exception 'NSUnknownKeyException', reason:
'
[<UIApplication 0x6a6f4b0> setValue:forUndefinedKey:]
: this class is not key value coding-compliant for the key view.' * First throw call stack:(0x13c7022 0x1558cd6 0x13c6ee1 0x9bf022 0x930f6b 0x930edb 0x94bd50 0x23371a 0x13c8dea 0x13327f1 0x23226e 0x233eb7 0x10ce1 0x10ff8 0x1017f 0x1f183 0x1fc38 0x13634 0x12b1ef5 0x139b195 0x12ffff2 0x12fe8da 0x12fdd84 0x12fdc9b 0xfc65 0x11626 0x1d4d 0x1cb5) terminate called throwing an exception
这个问题有解决办法吗?
最佳答案
如果您的 nib(xib 文件)中有一个控件链接到 View Controller 中的属性 (IBOutlet) 或方法 (IBAction),并且您已删除或重命名该属性或方法,则运行时可以'找不到它,因为它已被重命名并因此崩溃。
在您的情况下,您已将项目的 Main Interface 属性设置为 ViewController.nib。这是一个问题,因为应该用作主界面的唯一 nib 中应该有 UIWindows,并且该 nib 中的文件所有者应该设置为 AppDelegate。 nib 中的 UIWindow 应链接到文件所有者 (AppDelegate) 的窗口属性。因为您使用没有运行时正在寻找的特征的 nib 设置它,所以它会给您这个错误。
解决方案是将主界面留空,因为您不必再手动设置 UIWindows。
关于iphone - 此类与键 View 的键值编码不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10152872/