Xcode中模块的预处理规则

时间:2016-11-02 07:10:56

标签: ios xcode cocoalumberjack

CocoaLumberjack issue #778中,当CocoaLumberjack作为动态框架关联时,#import "DDLogMacros.h"中的行CocoaLumberjack.h没有任何效果。因此,LOG_ASYNC_ENABLED(在DDLogMacros.h中定义)未定义。

有人可以解释有关Xcode模块预处理规则的机制吗? 似乎预处理器没有“预处理”模块中的头文件。

1 个答案:

答案 0 :(得分:1)

我不清楚预处理规则,但添加 #import <CocoaLumberJack/DDLog+LOGV.h>可以处理。

CocoaLumberjack-umbrella.h中,订单如下:

#import "DDLog+LOGV.h"
#import "DDLog.h"
#import "DDLogMacros.h"

如果我改变这样的顺序,那就没问题了:

#import "DDLogMacros.h"   
#import "DDLog+LOGV.h"
#import "DDLog.h"

DDLog+LOGV.h也定义LOG_ASYNC_ENABLED,我猜CocoaLumberjack-umbrella.h中的顺序会影响宏

相关问题