【问题标题】:˜this class is not key value coding-compliant for the key˜ when creating a new Target〜创建新目标时,该类与键的键值编码不兼容〜
【发布时间】:2016-05-25 15:37:31
【问题描述】:

我有一个用 Swift 完成的大型 iOS 基础项目。现在我试图通过创建一个新的目标来创建不同的客户端版本:

  • BaseProject(工作正常,除非我更改它的名称)
  • Client1(启动屏幕后出现 NSUnknownKeyException)。

基础项目运行良好。但是当我切换到新目标时,我得到了以下 NSUnknownKeyException:

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

“textConfirmPassword”是我 main.storyboard 中文本字段的引用。

  • 我检查了参考网点,这似乎不是问题。
  • 我检查了文本字段的目标成员资格。
  • 我重新创建了插座参考。
  • 我删除了引用,创建了一个不会出现在情节提要上的硬编码文本字段,以便代码能够编译。异常出现在不同的文本字段 (textEmail)。

在做这一切之前,我使用图像和引用标签创建了一个示例项目。版本控制工作得很好。

【问题讨论】:

  • 如果您绝对确定没有未连接的插座(通过连接检查器检查),那么过去清理然后退出并重新启动 Xcode 已经为我修复了几次。令人惊讶的是,通过重新启动它可以解决多少 Xcode 问题。
  • 我已经这样做了。我重新创建了所有连接并重新启动了 xcode。没有这样的运气。

标签: ios xcode target nsunknownkeyexception


【解决方案1】:

我发现了问题所在。一件非常简单的事情,我不敢相信我花了这么长时间才弄清楚。第一个视图控制器选择了一个模块(当它不应该有任何模块时)。因此,每当我运行不同的目标时,它都找不到视图的元素。

【讨论】:

  • 你已经准确地描述了我的问题(创建了一个新目标,旧的构建,新的目标崩溃了这个异常,但它不是插座(我可以断开它,它只是在下一个插座上崩溃)。我不明白你的意思。什么是“第一个视图控制器”(根?)什么是“选择了一个模块”(目标成员资格?)
  • 我遇到了同样的问题。感谢您指出。 @SimplGy 当您选择实现文件时,在 Xcode 中,您可以在文件检查器中找到“目标成员资格”部分。这就是你的目标应该被启用的地方。
【解决方案2】:

我终于找到了问题,因为我的 storyboard->Identity Inspector->Inherit Module From Target 中的少数视图控制器没有被选中,这就是为什么新创建的目标中出现错误的原因。

检查视图控制器的“从目标继承模块”

【讨论】:

  • 谢谢,我遇到了同样的问题,这绝对是解决方案。在我找到你的回应之前,我拉了一两个小时的头发!
  • 嗨,我也有同样的问题,但实际上,我已经检查了“从目标继承模块”,并且插座连接良好,课程设置也很好。
【解决方案3】:

在我的例子中,我必须从 Inspector 为视图本身设置自定义类名。我只设置了文件所有者的类并与之连接,但遇到了同样的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-11
    • 1970-01-01
    • 2013-05-23
    • 2017-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-27
    相关资源
    最近更新 更多