什么可能是"使用未声明的标识符LOG_LEVEL_VERBOSE"消息的原因

Luk*_*ela 15 ios lumberjack

我正在尝试配置cocoalumberjack,当我添加ddLogLevelset到LOG_LEVEL_VERBOSEXCode抛出"使用未声明的标识符"错误.这是为什么?怎么避免?

在此输入图像描述

Dro*_*ppy 8

这个问题表明清除DerivedData并重新启动Xcode解决了这种错误.

但是,您不应该在预编译的头文件中包含变量,因为它将包含在每个源文件中,并且前缀文件与普通头文件相比有些复杂.

更好的是使用Constants.h包含以下内容的文件:

extern int ddLogLevel;
Run Code Online (Sandbox Code Playgroud)

并将#import其添加到您的前缀文件中.

然后创建一个Constants.m:

int ddLogLevel =
#ifdef DEBUG
                 LOG_LEVEL_VERBOSE;
#else
                 LOG_LEVEL_ERROR;
#endif
Run Code Online (Sandbox Code Playgroud)

这种方式只有一个实例,ddLogLevel如果需要,可以在运行时轻松更改.

有关前缀文件最佳做法的提示,请参阅此问题.

  • 我认为它现在是DDLogLevelVerbose (4认同)

mll*_*llm 6

在为Objective-C项目使用Xcode 8.0时,为我解决的问题是改变#import <CocoaLumberjack/CocoaLumberjack.h>了@import CocoaLumberjack;.