Objective-C .h文件与.m文件

时间:2014-11-19 04:11:12

标签: objective-c interface

我理解为什么要将类分类为头文件和实现文件。但是,我不明白为什么当你创建一个程序来使用该代码时,你再次导入头文件?我认为你会导入.m文件,因为这是类定义所在的位置,否则你的程序只知道类/方法的名称,而不知道如何处理它们,或者如何使用它们。我需要一个相对详细的答案,或者有人指点我找到一个。

2 个答案:

答案 0 :(得分:0)

您可以将头文件视为一种承诺。您不知道编译器何时或以何种顺序实际生成给定类的机器可读代码,但是头文件将确保编译器在包含它的任何文件中知道最终该代码以机器可读的形式存在。

答案 1 :(得分:0)

Objective-C是C的衍生物。

传统上,C(也是ObjC)编译器一次可以处理一个源文件(.c或.m)(称为翻译单元)。导入(或包括)只是一个预处理步骤,与将包含文件的整个内容附加到包含源文件中没有什么不同。

编译完成后,所有已编译的源文件(目标文件)将链接在一起作为单个输出文件。

你可以在任何地方#include /#import任何源文件中的任何文件(源代码,文本,html)。

编译完成后,所有已编译的源文件(目标文件)将链接在一起作为单个输出文件。

假设某人在B.m中包含A.m然后编译并链接这两个文件?他将有两份A.m的代码。当然,链接会失败。