升级到Xcode 9.3后,我们开始看到很多这样的警告:
生成"已定义"的宏扩展具有未定义的行为
像这样:
#if MIXPANEL_FLUSH_IMMEDIATELY // ==> Warning: Macro expansion producing ...
[self flush];
#endif
Run Code Online (Sandbox Code Playgroud)
还有这个:
#if !MIXPANEL_NO_AUTOMATIC_EVENTS_SUPPORT // ==> Warning: Macro expansion producing
- (void)setValidationEnabled:(BOOL)validationEnabled {
_validationEnabled = validationEnabled;
...
}
#endif
Run Code Online (Sandbox Code Playgroud)
小智 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
Run Code Online (Sandbox Code Playgroud)
我修好了这样的:
#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
Run Code Online (Sandbox Code Playgroud)
我就像这样分离了宏"SCENEKIT_SDK_AVAILABLE",警告也没了.
你可以尝试我的方式.
| 归档时间: |
|
| 查看次数: |
728 次 |
| 最近记录: |