如何将 IBOutlet 连接到 class 类别的故事板

How to connect an IBOutlet to the storyboard from a class category

我有一个 CarViewController class,它有几个 class 类别文件。 CarViewController.m 进口 CarViewController+protected.h。我想在 car+protected.h 中包含一些 IBOutlet 属性,以便我可以在我的 CarViewController.m 和其他 class 类别实现文件中使用它们。

我打开了助理编辑器,但无法从我的视图拖动到 CarViewController+protected.h 中的 Outlet。但是,我能够从 CarViewController+protected.h 中的奥特莱斯拖动到情节提要中的视图。

我 运行 我的代码最终出现 this class is not key value coding-compliant for the key 错误,这通常意味着您在项目中的某处有过时的连接。我已经检查过这个并清理了项目,但我似乎无法克服这个错误。

是否可以让 IBOutlets 连接到 class 类别头文件中的故事板?如果没有,我可以使用 class 扩展文件吗?我的 CarViewController class 变得非常大,我想使用类别或扩展来分解文件大小并更好地组织我的代码。

您不能在类别中声明属性,因此无法将 IBOutlet 属性 连接到类别。

在你的情况下,使 CarViewController 成为超级 class 并使子 class 继承自 class 可以解决问题。