【问题标题】:Unknown class and NSUnknownKeyException in Xcode 10 GMXcode 10 GM 中的未知类和 NSUnknownKeyException
【发布时间】:2019-02-20 18:11:00
【问题描述】:

我已下载 Xcode 10 GM,但我的应用在模拟器中运行时立即崩溃。 Xcode 说:

Unknown class _TtC7App-Name14ViewController in Interface Builder file.

Terminating app due to uncaught exception 'NSUnknownKeyException', 
reason: '[<UIViewController 0x7f944440c880> setValue:forUndefinedKey:]: 
this class is not key value coding-compliant for the key backgroundImage.'

但是,当我在 Xcode 9 中打开我的项目时,没有错误,并且我的应用程序运行良好。 我搜索了这个问题,并尝试了其他人在 stackoverflow 上建议的所有内容。从检查所有故事板对象和约束连接,到确保类正确并检查从目标继承模块。我还尝试在模拟器中“擦除所有内容和设置”并删除 DerivedData 文件夹。删除 Storyboard 和代码中的 backgroundImage 并没有帮助,因为我得到了同样的错误,但是来自同一个 ViewController 的另一个对象。

有没有人遇到同样的问题并找到了解决方案?

编辑:当我添加一个新的视图控制器并将其设置为“初始视图控制器”时,视图确实会在模拟器中加载。一旦我添加了一个 swift 文件并在 Interface Builder 中为那个新的 ViewController 设置了 Class,我就会收到 Unknown Class 警告。当我添加标签或任何对象时,我得到:未知类和 NSUnknownKeyException。因此,特定的 ViewController 或对象绝对没有问题。如果有人遇到同样的问题,请帮助我。我不能再对这个项目做任何事情了:(

ViewController Identity Inspector

Storyboard Source Code

【问题讨论】:

  • 让我们专注于身份检查器。很明显,您在 Interface Builder for ViewController 中对视图控制器类的设置没有被遵守。你还记得按回车吗?当你这样做时,你看到模块被填满了吗?您是否检查了从目标继承模块?
  • 我上传了两张截图,展示了它目前的样子。我尝试在 Identity Inspector 中删除 Class 并再次输入,但没有成功。
  • 我很好奇这些屏幕截图中的模块名称VOYAGE_。您的应用名称是否以标点符号结尾?
  • 我的应用名称以 é 结尾,但在 Xcode 8 和 9 中我没有遇到问题。
  • 宾果游戏。我建议您在 Xcode 10 中确实遇到问题。这可以解释一切。您的模块名称不是VOYAGE_,因此无法在此基础上找到该类。有意义吗?

标签: ios iphone crash simulator xcode10


【解决方案1】:

问题在于您的项目名称(以及随之而来的所有内容)不是纯 ascii 字母数字(特别是,它包含一个变音符号,一个“é”字符)。这可能会以微妙的方式把事情搞砸。我不知道为什么 Xcode 10 对此感到窒息,但 Xcode 9 没有,但确实如此。

解决方案是更改项目名称并允许由此导致的重命名级联。然后编辑显示名称,使其成为您想要的方式;这是应用程序的面向用户的名称,其中一个“é”非常好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-21
    • 2017-01-15
    • 2018-03-01
    • 2019-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多