【发布时间】:2014-02-03 18:07:02
【问题描述】:
现在我想将包含公共方法的 ViewController 拆分为多个文件,以便于管理和导航。我知道类别可以做到这一点,但它主要是通过在每次您想要使用它们时导入类别来使用。我正在处理的 ViewController 意味着要被子类化很多次,所以这不是一个真正的选择。
我想要实现的是将这些公共方法分门别类,将所有这些类别合并到一个文件中,在头文件中导入,以确保子类不需要一次又一次地导入。
有没有办法做到这一点?我四处寻找,但我发现的只是:
在同一个头文件中声明类别,在多个实现文件中声明它们
这不是我要找的,因为我大量记录我的内联代码以利用 XCode 5 显示内联文档的能力。由于所有文档,使用 Ctrl+6 不使用 导航类已经是一场噩梦般的迷宫。它会缓解实现文件的问题,但不是我想要的。在拆分标题中声明类别
我发现的所有相关内容仅供该类中的私人使用(在实现文件中导入类别)。我还需要拆分公共方法并让它们可供子类查看。
我考虑过创建一个导入所有类别的类,本质上隐藏了实际的类,但这会将我与受保护的变量隔离开来(我需要这些)。
有没有...的解决方案,或者对于当前的 Objective C 来说这真的不可能吗?
编辑: 我听说 DocSets 是 Apple 允许他们在不记录内联代码的情况下显示文档的方式。如果使用 DocSet 允许我清理我的标头代码(即,将文档移至其他位置)并且在快速帮助中仍然有可用的文档,我想了解这一点
【问题讨论】:
-
你可能是更好的服务器解释为什么你有这么多子类 - 在更高级别改变你的方法可能会更好......
-
@Wain 每个子类都是他们自己的页面。这些页面都有相似的需求,所以我将这些需求分组到一个 ViewController 中,并通过子类化基本 ViewController 来创建每个页面,并根据自己的特定需求单独修改每个页面(子类)
-
您可以拥有一个“伞”.h 文件,该文件将类标头与所有(公共)类别标头一起导入,即您的 #2 应该可以工作。
标签: ios objective-c