在单个文件中声明和使用多个Objective-C类

在单个文件中声明和使用多个Objective-C类,objective-c,class,Objective C,Class,我一直在一个非常枯燥的教科书环境中使用Objective-C,即在一个文件中定义一个类,并有一组文件,一个用于实现,一个用于接口 我已经准备好开始使用一种不太可取、但又快又脏的方法来构建类,在一个实现文件中声明和使用多个类。(编辑)我不打算在生产代码中这样做,只是想快速测试一些想法,如果你愿意的话,但仍然能够访问整个应用程序中的数据,而不是创建一个单独的沙盒XCode项目来完成,因为它无法访问测试我的想法所需的所有数据 我能找到的所有教育材料都只演示了一个.h和一个.m文件的无菌方法以及一个接口

我一直在一个非常枯燥的教科书环境中使用Objective-C,即在一个文件中定义一个类,并有一组文件,一个用于实现,一个用于接口

我已经准备好开始使用一种不太可取、但又快又脏的方法来构建类,在一个实现文件中声明和使用多个类。(编辑)我不打算在生产代码中这样做,只是想快速测试一些想法,如果你愿意的话,但仍然能够访问整个应用程序中的数据,而不是创建一个单独的沙盒XCode项目来完成,因为它无法访问测试我的想法所需的所有数据

我能找到的所有教育材料都只演示了一个.h和一个.m文件的无菌方法以及一个接口和实现

假设我想在ClassA的实现文件中定义ClassA、ClassB和ClassC。我还需要为ClassB和ClassC声明一个接口吗?我可以按照ClassA的顺序声明所有这些东西并使其正常工作吗


非常感谢。

是的,你必须申报同样的东西。您应该在实现之前声明接口

但我建议,这样做不是为了节省时间,而且只有在关系密切的情况下。例如,其他允许使用子类的语言,在Objective-C中,这可能是同一文件中第二个类的候选语言。我只希望头文件中没有类


我将此限制为仅由文件中的主类使用的类,并且只有主类的接口在头文件中。第二个类将是主类的助手类。这当然比让一个班级超越一个单一的责任要好。

我实际上只是为了一个“操场”班级来快速而肮脏地测试一些想法。由于Objective-C没有像Swift那样的沙盒,所以这是我的Objective-C快速游戏,可以尝试一些东西。在玩了一些测试代码之后,我将删除类文件。我应该用这个警告补充您的答案。对于真正不熟悉客观世界的人来说,这可能并不明显。。。正如zaph所指出的,您必须将
@接口
@实现
分解,但是,您必须在使用它们的类之前(上面)声明它们,以便编译器能够识别它们。只有
@接口
必须位于
@实现
之前并使用它们。但是让他们在一起是个好主意,