【问题标题】:Declaring and using multiple Objective-C classes in a single file在单个文件中声明和使用多个 Objective-C 类
【发布时间】:2015-07-01 23:03:23
【问题描述】:

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

我已准备好开始使用不太受欢迎但又快又脏的方法来构建类,在单个实现文件中声明和使用多个类。 (编辑)我不打算在生产代码中执行此操作,如果您愿意的话,只是为了快速测试一些想法,但仍然能够访问完整应用程序中的数据,而不是创建单独的沙盒XCode Project 来做这件事,它无法访问我需要测试我的想法的所有数据。

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

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

非常感谢。

【问题讨论】:

    标签: objective-c class


    【解决方案1】:

    是的,您必须声明相同的内容。您应该在实现之前声明接口。

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

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

    【讨论】:

    • 我实际上只是为了一个“游乐场”类来快速和肮脏地测试一些想法。由于 Objective-C 没有像 Swift 这样的沙箱,所以这是我的 Objective-C 快速游戏尝试一下。玩过一些测试代码后,我将删除类文件。
    • 我应该用这个警告来补充你的答案。对于真正接触 Objective-C 的人来说,这可能并不明显……您必须按照 zaph 的指示将 @interface@implementation 去掉,但是,您必须在使用它们的类之前(上方)声明它们,在让它们被编译器识别。
    • 只有@interface 必须在@implementation 之前并使用。但是把它们放在一起是个好主意,
    猜你喜欢
    • 1970-01-01
    • 2011-04-26
    • 2011-01-21
    • 1970-01-01
    • 2023-03-16
    • 2018-05-01
    • 1970-01-01
    • 2011-07-08
    相关资源
    最近更新 更多