0

我在 xcode 中制作了一个应用程序,每当我构建或运行该应用程序时,它都说没有问题,但是在显示启动图像后,该应用程序似乎崩溃并抛出此错误。

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类与键 high_score_outlet 的键值编码不兼容。” * First throw call stack: (0x1c24012 0x1609e7e 0x1cacfb1 0xcae41 0x4c5f8 0x4c0e7 0x76b58 0x619019 0x161d663 0x1c1f45a 0x617b1c 0x6198da 0x3fb68b 0x3fb9a2 0x3fa876 0x40bcb5 0x40cbeb 0x3fe698 0x255fdf9 0x255fad0 0x1b99bf5 0x1b99962 0x1bcabb6 0x1bc9f44 0x1bc9e1b 0x3fa17a 0x3fbffc 0x211d 0x2055) libc++abi.dylib: terminate called throwing an exception

我不太确定它为什么会崩溃,因为它说在构建或运行应用程序时代码中没有问题。

任何想法如何解决它?

4

3 回答 3

3

您可能已重命名属性并忘记将 IBOutlet 重新连接到 Interface Builder 文件中的组件。每当您更改代码中作为 IBOutlet 的属性时,您应该检查 Interface Builder 并在连接中断时重新连接该项目。

您的应用程序将编译得很好,因为 Interface Builder Outlets 在运行时连接,当 nib 被加载时。

于 2013-02-10T22:48:39.530 回答
3

它很可能IBOutlet已经过时了。

转到将加载到情节提要中的第一个控制器并检查Connections Inspector(⌥⌘6) 并寻找连接到的插座high_score_outlet

在此处输入图像描述

这可能是较早的重构遗留下来的。您需要断开它并设置正确的连接

于 2013-02-10T23:03:24.170 回答
0

检查哪个类具有该属性-high_score_outlet。您收到的消息意味着运行时找不到相关的属性实现,因此:

  1. 你没有在课堂上正确定义它,或者
  2. 你在一个不是你认为的类的对象上调用它。使用调试器来验证调用方法的对象的类。
于 2013-02-10T22:40:58.777 回答