这个类不是关键视图编码兼容的键值

我很新的Xcode …一个应用程序(简单的计算器)工作很好(在模拟器和设备上)。 当我在Target摘要选项中设置主界面时,启动模拟器时出现以下错误:

2012-04-14 12:17:27.123 CalcTest [27550:f803] *由于未捕获的exception“NSUnknownKeyException”而终止应用程序,

原因:' [<UIApplication 0x6a14650> setValue:forUndefinedKey:] :这个类不是密钥[<UIApplication 0x6a14650> setValue:forUndefinedKey:]符合密钥值的编码。

*第一掷调用堆栈:(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)终止叫做抛出exception(LLDB)

为了find问题,我开始了一个新的基于视图的项目。

在模拟器上运行空的新项目 – >工作,

但是当我把主界面设置到ViewController的时候,在总结 – >模拟器崩溃的时候

2012-04-14 12:11:17.492 crash [27494:f803] *由于未捕获exception'NSUnknownKeyException',终止应用程序,原因:

' [<UIApplication 0x6a6f4b0> setValue:forUndefinedKey:] :这个类不是关键的视图编码兼容的值。 *首先掷出调用堆栈:

(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)终止叫做抛出一个exception

有没有解决这个问题的方法?

如果您在视图控制器中链接到属性(IBOutlet)或方法(IBAction)的nib(xib文件)中有一个控件,并且您已经删除或重命名了该属性或方法,则运行时无法find它因为它已经被重命名并因此崩溃。

你的情况,你已经把项目的主界面属性设置到你的ViewController.nib。 这是一个问题,因为应该用作主接口的唯一笔尖应该在其中具有UIWindows,并且应该将该笔尖中的文件所有者设置为AppDelegate。 nib中的UIWindow应该链接到文件所有者(AppDelegate)窗口属性。 因为你使用一个没有运行时所需特性的笔尖来设置它,它会给你这个错误。

解决方法是将主界面留空,因为您不必手动设置UIWindows。

只是有相同的问题,并通过正确的控制点击控制xib文件中的控件来查看引用出口。 原来的一些控件仍然引用和旧名称,并导致此错误发生。

如果您收到类似于以下内容的消息:

  • 由于未捕获的exception“NSUnknownKeyException”,终止应用程序,原因:

'[setValue:forUndefinedKey:]:这个类不是密钥的密钥值

点击BreakPoint导航区域左下angular的add(+),select'Add Exception Breakpoint',因为它是因为'NSUnknownKeyException'而崩溃的,select'All'。 运行程序。 程序停止在第一个例外。

试试这个,select文件的所有者,然后点击“连接督察”(右上方的顶部上方),你会看到所有的网点。 find任何这样的符号(!),你会发现它在一个小圆圈,表明缺less出路 ,所有你需要做的是正确地链接或删除sockets。

尝试这个,

转到目标=>构build阶段=>编译源

然后包括'calculatorScreen.m'

我面临同样的问题。 在我的情况下,我已经重命名.h文件中的文本标签。 所以在我的main.storyboard文件中有这个标签的多个引用。 一旦我删除旧的引用我的代码开始工作。

请检查您的目标会员select第一个选项。这可能有助于他人