Ios 是否可以将公共方法划分为多个类别?

Ios 是否可以将公共方法划分为多个类别?,ios,objective-c,Ios,Objective C,现在,我想将包含公共方法的ViewController拆分为几个文件,以便于管理和导航。我知道分类可以做到这一点,但它主要是通过每次导入分类来使用的。我正在使用的ViewController需要多次子类化,所以这不是一个真正的选项 我想要实现的是将这些公共方法拆分为类别,并将所有这些类别合并到一个文件中,在头文件中导入它们,以确保子类不需要一次又一次地导入它们 有办法做到这一点吗?我四处寻找,但我发现的是: 在同一个标题中声明类别,在多个实现文件中声明类别 这不是我想要的,因为我大量地以内联方式

现在,我想将包含公共方法的ViewController拆分为几个文件,以便于管理和导航。我知道分类可以做到这一点,但它主要是通过每次导入分类来使用的。我正在使用的ViewController需要多次子类化,所以这不是一个真正的选项

我想要实现的是将这些公共方法拆分为类别,并将所有这些类别合并到一个文件中,在头文件中导入它们,以确保子类不需要一次又一次地导入它们

有办法做到这一点吗?我四处寻找,但我发现的是:

  • 在同一个标题中声明类别,在多个实现文件中声明类别
    这不是我想要的,因为我大量地以内联方式记录代码,以利用XCode 5显示内联文档的能力。由于所有文档的原因,在不使用Ctrl+6的情况下导航类已经是一个梦魇迷宫。它将缓解实现文件的问题,但不是我想要的

  • 在拆分标题中声明类别
    我所发现的关于这一点的所有信息都仅用于该类中的私有用途(在实现文件中导入类别)。我还需要拆分公共方法,并使它们可供子类查看

  • 我考虑创建一个导入所有类别的类,本质上隐藏了实际的类,但它将我从受保护的变量中锁定(我需要这些)

    有没有。。。这个问题的解决方案,或者说,按照目前的目标C,这真的是不可能的吗

    编辑:
    我听说Docset是苹果公司的一种方式,它允许苹果公司在不内联记录代码的情况下显示文档。如果使用DocSet允许我清理标题代码(即,将文档移到其他位置),并且仍然可以在快速帮助中获得文档,我想了解一下,在这些情况下,我会在父类的.h上导入必要的类别,这样子类也可以获得类别

    在单独的头文件中声明类别。编写另一个头文件,其唯一目的是#包含具有公共API的每个类别头。在编写子类时使用这个头文件。编写另一个头文件,其中包括单个公共文件和任何其他私有类别头文件,供内部使用


    这类似于框架对其类所做的操作。Foundation的类在单独的文件NSObject.h、NSArray.h等中声明。然后,Foundation/Foundation.h包含公共类的每个头。

    我决定只拆分实现文件。为多个标题重新构造类需要更长的时间,比我预期的要困难。我认为我发布的场景无法以我希望的方式解决。

    你可能会更好地解释为什么你有这么多子类-最好在更高的层次上改变你的方法…@Wain每个子类都是自己的页面。这些页面都有相似的需求,因此我将这些需求分组到一个ViewController中,通过对基本ViewController进行子类化来创建每个页面,并根据各自的特定需求分别修改每个页面(子类)。您可以拥有一个“伞形”.h文件,该文件将类标题与所有(公共)类别标题一起导入,也就是说,你的#2应该可以工作。问题是,如果我在父类的.h上包含标题,它构成循环引用(类别导入主类,主类导入类别),我不能使用它,我triedFoundation是单个类的集合,这些类别是同一实体的一部分。由于原始类使用受保护的变量,按照您的建议执行操作需要我将原始类作为不同于子类的实体来实现,并且原始受保护的变量必须作为公共属性来实现,我并不打算这样做