升级到Xcode 9.3后,我们开始看到很多这样的警告:
宏观扩张生产'定义'有未定义的行为
像这样:
#if MIXPANEL_FLUSH_IMMEDIATELY // ==> Warning: Macro expansion producing ...
[self flush];
#endif
而且:
#if !MIXPANEL_NO_AUTOMATIC_EVENTS_SUPPORT // ==> Warning: Macro expansion producing
- (void)setValidationEnabled:(BOOL)validationEnabled {
_validationEnabled = validationEnabled;
...
}
#endif
答案 0 :(得分:5)
宏定义如下,导致警告:
#if TARGET_OS_MAC
#define SCENEKIT_SDK_AVAILABLE defined(POP_USE_SCENEKIT)
#elif TARGET_OS_IPHONE
#define SCENEKIT_SDK_AVAILABLE defined(POP_USE_SCENEKIT)
#endif
我修好了这个:
#if defined(POP_USE_SCENEKIT)
# define USE_SCENEKIT 1
#else
# define USE_SCENEKIT 0
#endif
#if TARGET_OS_MAC
#define SCENEKIT_SDK_AVAILABLE USE_SCENEKIT
#elif TARGET_OS_IPHONE
#define SCENEKIT_SDK_AVAILABLE USE_SCENEKIT
#endif
我分离了宏" SCENEKIT_SDK_AVAILABLE"那样的,警告就没了。
你可以尝试我的方式。