启用CocoaLumberjack 1.9.x遗留宏+重新定义DDLogWarn宏

时间:2015-08-03 08:46:53

标签: ios cocoa-touch 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.

在主项目中,我没有导入DDLog.h的文件。只有Pods中的CocoaLumberjack导入DDLog.h。

我也收到DDLogError macro redefinedDDLogInfo macro redefined等警告。 导致这种情况的问题是什么?

1 个答案:

答案 0 :(得分:5)

我认为问题源于DDLegacyMacros.h缺失:

#if DD_LEGACY_MACROS

在第21行和:

#endif

在第75行。然后在DDLog.h中,替换:

#if DD_LEGACY_MACROS
    #import "DDLegacyMacros.h"
#endif

使用:

#import "DDLegacyMacros.h"

https://github.com/CocoaLumberjack/CocoaLumberjack/commit/9b31277c90d7c3968038af09a7bddd003aa28da9

在Cocoapods中应用新的use_frameworks!选项时,桥接标头 自动生成。此桥接标头必须导入DDLegacyMacros.h 直。 这会导致CocoaLumberjack 1.9.x legacy macros enabled.macro redefined警告。

因此仅仅检查DDLog.h中的标志是不够的。