bra*_*ray 1 cocoa-touch ios cocoalumberjack
我有一个项目使用Cocoalumberjack 2.x作为Cocoapod.该项目主要使用Obj-C,但也使用了一些Swift类.
我总是得到这些警告:
Disable legacy macros by importing CocoaLumberjack.h or DDLogMacros.h instead of DDLog.h or add `#define DD_LEGACY_MACROS 0` before importing DDLog.h.
Run Code Online (Sandbox Code Playgroud)
在主项目中,我没有导入DDLog.h的文件.只有Pods中的CocoaLumberjack导入DDLog.h.
我也得到了DDLogError macro redefined,DDLogInfo macro redefined等警告.导致这种情况的问题是什么?
小智 5
我认为问题源于DDLegacyMacros.h缺失:
#if DD_LEGACY_MACROS
Run Code Online (Sandbox Code Playgroud)
在第21行和:
#endif
Run Code Online (Sandbox Code Playgroud)
在第75行.然后在DDLog.h中,替换:
#if DD_LEGACY_MACROS
#import "DDLegacyMacros.h"
#endif
Run Code Online (Sandbox Code Playgroud)
有:
#import "DDLegacyMacros.h"
Run Code Online (Sandbox Code Playgroud)
https://github.com/CocoaLumberjack/CocoaLumberjack/commit/9b31277c90d7c3968038af09a7bddd003aa28da9
use_frameworks!在Cocoapods中应用新选项时,会自动生成桥接标头.此桥接标头必须DDLegacyMacros.h
直接导入.这导致CocoaLumberjack 1.9.x legacy macros enabled.和macro
redefined警告.
因此仅仅检查DDLog.h中的标志是不够的.
| 归档时间: |
|
| 查看次数: |
1201 次 |
| 最近记录: |