我想知道,当我在 Objective-C 中构建项目时,会编译哪些代码 - 我的项目中的每一行代码,或者只是从 main.c 调用的代码,然后从被调用的代码中编译的代码来自他们?
我的意思是,编译器是否将项目分离到简单连接的域并编译链接到主域的项目,或者只是编译全部?
编译器不会对您的代码执行语义分析。它准确地编译您告诉它编译的内容——Xcode 通常以将每个文件编译到您的应用程序中的方式调用编译器。但是,没有必要编译/链接未使用类/函数的文件;尽管不编译使用类/函数的文件会导致链接错误(也就是说,编译器在将最终可执行文件的目标代码放在一起时将无法在二进制文件中找到某些符号)。
项目中的所有文件都会被编译,但任何 .m 文件中未包含的头文件或有条件抑制包含的头文件除外。