为什么Objective-C类使用2个文件?

时间:2014-03-20 21:32:47

标签: objective-c

正如标题所示,我有兴趣知道为什么Objective-C中的类使用2个类文件。它们可以相互组合,这两个文件仅用于组织目的吗?如果是这样,您可以将接口部分从.m文件中删除吗?

2 个答案:

答案 0 :(得分:2)

.h文件的原因是万一其他文件需要知道这个类的存在,它的公共方法等等 - 你必须永远不要将.m文件导入另一个文件,所以你把公共信息(接口) !)进入.h文件。

但这种安排没有任何神圣之处。您可以将接口和实现都放入一个.m文件中。事实上,“一个一个文件”没有什么神圣之处 - 你可以把多个类的接口和实现放到一个.m文件中,事实上如果一个类纯粹是一个帮助者其他课,我这样做。

因此,例如,这是一个最小的合法.m文件(没有.h文件):

@interface MyClass : NSObject
@end
@implementation MyClass
- (NSString*) sayGoodnightGracie {
    return @"Good night, Gracie!";
}
@end

答案 1 :(得分:1)

有一个头文件(定义类)和一个源文件(实现该类)。 IOW,就像其他编译语言一样 - 尤其是它衍生自的语言 - 'C'。是的,它们可以合并,但那么另一个文件如何知道该类的定义?