正如标题所示,我有兴趣知道为什么Objective-C中的类使用2个类文件。它们可以相互组合,这两个文件仅用于组织目的吗?如果是这样,您可以将接口部分从.m
文件中删除吗?
答案 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'。是的,它们可以合并,但那么另一个文件如何知道该类的定义?