Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone <;AppName>;。pch文件使用_Iphone_Cocoa_Ios_Pch - Fatal编程技术网

Iphone <;AppName>;。pch文件使用

Iphone <;AppName>;。pch文件使用,iphone,cocoa,ios,pch,Iphone,Cocoa,Ios,Pch,.pch文件的重要性以及“#ifdefOBJC”的意义是什么 此外,我们在何处定义参数,如“#ifdef IS_PRODUCTION”,这些参数签入.pch文件。。pch是预编译头 在C和C++编程语言中,头文件是一个文件,它的文本可以由C预处理器自动地包含在另一个源文件中,通常是通过源文件中的编译器指令来指定的。 #ifdef OBJC让编译器知道代码是Objective-C < >代码> {IFDEF ISSuffue< /Cord> >是您自己定义的一个指令,它告诉编译器只有在被定义时才

.pch文件的重要性以及“#ifdefOBJC”的意义是什么


此外,我们在何处定义参数,如“#ifdef IS_PRODUCTION”,这些参数签入.pch文件。

。pch
是预编译头

在C和C++编程语言中,头文件是一个文件,它的文本可以由C预处理器自动地包含在另一个源文件中,通常是通过源文件中的编译器指令来指定的。

#ifdef OBJC
让编译器知道代码是Objective-C


< >代码> {IFDEF ISSuffue< /Cord><强> >是您自己定义的一个指令,它告诉编译器只有在被定义时才做一些事情,最有可能是用于生成构建的东西。

。PCH文件允许您避免导入UIKIT.H和Buff.H等常见文件。如果在.pch中导入了这些文件,则您自己的类不需要导入它们

#ifdef OBJC的意义在于,如果没有将编译器设置为生成目标c代码,则不会导入包含目标c代码的头文件(因此避免了大量编译器错误)


您可以在目标的生成设置中定义参数,如IS_PRODUCTION。我通常在“其他C标志”中执行此操作。

Ok。“ifdef OBJC”的意义是什么?还有,我们在何处定义我们放入if条件中的宏,如“#ifdef IS#u PRODUCTION”?您可以在任何地方定义这些宏,使用它们,只需导入它们所在的文件。可能有点保留,但“
#ifdef OBJC
让编译器知道代码是Objective-C”是非常误导的,因为它不会“告诉”任何人任何事情,而是简单地检查ObjC在编译时是否已知/可用,并确保在编译期间忽略其包含的代码。在10个案例中,有9个案例的效果可能是相同的,但技术含义却大不相同。编译器不会通过
#ifdef OBJC
获得更多信息,相反。它最终会导致代码的遗漏(并且可能是关键的)。