如何避免将prefix.pch文件中的import语句添加到名为VMKChilkatWrapper.h
的某个.h文件中?
我尝试过以下方法:
#if !__has_include("VMKChilkatWrapper.h")
#if !strcmp(__FILE__, "VMKChilkatWrapper.h")
#if !strcmp(__BASE_FILE__, "VMKChilkatWrapper.h")
但即使经过几个小时的尝试,我也无法发挥作用。这可能吗?
为什么我要这样做?
我有几个.mm
个文件(Objective-C ++)。当我将Objective-C类导入其中时,我无法再使用@import
。
因此,我创建了一个包装类,它是导入我的.mm
文件的唯一类。
我还在Prefix.pch文件中使用#ifdef __OBJC__
,以避免将我的Objective-C头文件导入到我的.mm
文件中。
但是,#ifdef __OBJC__
不会阻止我的Prefix.pch
文件包含在VMKChilkatWrapper
中。因此,@import
指令不适用于Prefix.pch
文件中的任何文件。
目前,我认为最好的解决方案是删除Prefix.pch
文件中的import语句。
答案 0 :(得分:0)
你不能。
在编译之前,前缀头将添加到每个实现文件中。目前没有关于该文件中包含的其他头文件的信息。
如果你需要这个,你做错了。前缀头的唯一目的是通过预编译一些框架头来加速编译。只需在那里添加内容以便在每个实现文件中都可用,这是一种反模式。