【为什么要在预编译头中加__OBJC__?】
因为在一个OC工程中,可能包含.m、.mm、.c、.cpp四类编译文件,这四类文件均会引用.pch预编译头。在编译.c、.cpp时,因为语法不兼容OC,所以预编译头中不能包含objc代码。
But因为.pch是2类源文件共用的,所以在pch中,oc头文件要用__OBJC__包含起来。如下: