Правила предварительной обработки для модулей в Xcode
В выпуске CocoaLumberjack № 778, когда CocoaLumberjack
связан как динамический каркас, линия #import "DDLogMacros.h"
в CocoaLumberjack.h
не имеет никаких эффектов. Следовательно, LOG_ASYNC_ENABLED
(который определен в DDLogMacros.h
) не определено.
Может кто-нибудь объяснить механизм о правилах предварительной обработки модулей Xcode? Похоже, что препроцессор не "препроцессирует" заголовки в модулях.
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
повлияет на макрос