从 Swift 框架加载 ViewController

Loading a ViewController from Swift Framework

我正在创建一个 Swift framework,其中有 ABC.Storyboard 和一个 ViewController。我已将所有 UIView 引用到 MyViewController,它们也存在于框架中。 当我将此框架添加到我的应用程序并尝试加载此 MyViewController 时,我得到 setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myImageView 错误。

希特什,

只有当您的故事板具有关于其视图的 IBOutlets 的陈旧信息时才会发生这种情况。

怎么回事?

您的 Storyboard ViewController (MyViewController) 中必须有一个 ImageView。在您开发框架的过程中,有时您已将名称为 myImageView

的 IBOutlet 拖到所有者 class(比方说 MyViewController.swift)

稍后您一定从您的 ownerClass (MyViewController.swift) 中删除了名为 myImageView 的 属性 并且忘记从故事板中删除对 属性 的引用.

发生了什么?

你的 Storyboard 的 ViewController 仍然假设在其 ownerClass 中有一个名为 myImageView 的 属性 并且它的组件 [=14] 是一个 IBOutlet =].

因此,当加载视图时,它会查找 属性,当 属性 未找到时,它会向您抛出此 class 与 不兼容的编码错误键 myImageView 因为它无法找到名为 myImageView.

的 属性

解决方案

打开故事板 select MyViewController 转到连接检查器(单击右侧的最后一个选项,它将向您显示 ViewController 中每个组件的 IBOutlets) select 你的 ImageView 你会发现这样的东西,

单击 (myImageView) - (x MyViewController) 前面的小 'x' 符号以取消它与已删除的 属性 引用的链接:)清理构建并重新运行 :)

Ta daaa 问题已解决:)编码愉快:)