当我使用Cocoapods或手动向项目添加框架时,它们只包含头文件。从Xcode开始,使用"跳转到定义"没有定义(这意味着没有.m文件)。
当调用库中的函数时,如果.m文件不在项目中,编译器如何实现它?
答案 0 :(得分:3)
以一种稍微简单的方式来构建可执行文件通常至少会经历以下两个阶段:
框架可能包括已编译的二进制形式的实现。然后将这些链接与您编译的源。编译器不会以任何方式触及它们,只需要描述它们的.h
个文件。联系人的工作就是将它们与您的代码拼接在一起。
如果您想了解有关此主题的更多信息,以下问题的答案包含更详细的信息:
How does the compilation/linking process work?(问题是关于C ++,但C和Objective C大致采用相同的过程)