代码之家  ›  专栏  ›  技术社区  ›  Hitesh

从Swift Framework加载ViewController

  •  1
  • Hitesh  · 技术社区  · 10 年前

    我正在创建一个 Swift framework 其中有 ABC.Storyboard 和一个 ViewController 。我引用了所有 UIView MyViewController 框架中也有。 当我将此框架添加到我的应用程序并尝试加载此框架时 MyView控制器 ,我知道 setValue:forUndefinedKey:]:此类不符合密钥myImageView的键值编码 错误

    1 回复  |  直到 10 年前
        1
  •  1
  •   Sandeep Bhandari    10 年前

    Hitesh,

    只有当情节提要包含有关其视图的IBOutlet的陈旧信息时,才会发生这种情况。

    怎么回事?

    您必须在情节提要的ViewController(MyViewController)中拥有ImageView。在开发框架的某个时候,您将一个IBOutlet拖到了名为MyViewController.swift的所有者类中 myImageView

    稍后,您必须删除名为 我的图像视图 而忘记从情节提要中删除对该属性的引用。

    发生了什么?

    您的情节提要的ViewController仍假定存在名为的属性 我的图像视图 在其ownerClass中,它是一个 IBOutlet 用于其组件 ImageView .

    因此,当视图被加载时,当属性未找到时,它会查找该属性,并向您抛出错误,该类是 键myImageView的编码不兼容 因为它找不到名为的属性 我的图像视图 .

    解决方案

    打开情节提要,选择MyViewController转到连接检查器(单击右侧的最后一个选项,它将显示ViewController中每个组件的IBOutlet),然后选择ImageView,您会发现类似这样的内容, enter image description here

    单击(myImageView)-(x MyViewController)前面的小“x”符号,将其与已删除的属性引用断开链接:)清理生成并重新运行:)

    Ta-daa问题已解决:)快乐编码:)