我正在创建一个 Swift 框架
,它有 ABC.Storyboard
和一个 ViewController
。我已将所有 UIView
引用到 MyViewController
,它也存在于 Framework 中。
当我将这个框架添加到我的应用程序并尝试加载这个 MyViewController
时,我得到 setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key myImageView错误。
最佳答案
希特什,
只有当您的 Storyboard具有关于其 View 的 IBOutlets 的陈旧信息时才会发生这种情况。
这是怎么发生的?
您的 Storyboard 的 ViewController (MyViewController) 中必须有一个 ImageView。在您开发框架的过程中,有时您已将名称为 myImageView
的 IBOutlet 拖到所有者类(假设为 MyViewController.swift)
稍后,您一定是从 ownerClass (MyViewController.swift) 中删除了名为 myImageView
的属性,并且忘记从 Storyboard 中删除对该属性的引用。
发生了什么?
您的 Storyboard 的 ViewController 仍然假设其 ownerClass 中有一个名为 myImageView
的属性,并且它的组件 IBOutlet
是一个 ImageView
。
因此,当加载 View 时,它会查找该属性,当找不到属性时,它会抛出错误,表明该类不符合键 myImageView 的编码,因为它无法找到名为 myImageView
的属性。
解决方案
打开你的 Storyboard,选择 MyViewController 转到连接检查器(单击右侧的最后一个选项,它将向你显示 ViewController 中每个组件的 IBOutlets)选择你的 ImageView 你会发现这样的东西,
单击 (myImageView) - (x MyViewController) 前面的小“x”符号以取消它与已删除属性引用的链接:)清理构建并重新运行:)
Ta daaa 问题解决了 :) 编码愉快 :)
关于ios - 从 Swift 框架加载 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37650702/