3

CocoaLumberjack を使用したいのですがddLogLevel const、.pch ファイルに挿入しようとしています。

#if DEBUG
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
static const int ddLogLevel = LOG_LEVEL_INFO;
#endif

ただし、私は XMPP フレームワークを使用しており、CocoaLumberjack を使用しているRedefinition of 'ddLogLevel'ため、これらのクラスには上記とまったく同じconst定義が含まれているため、エラーが発生します。

ddLogLevelこれを避けるために、すべてのクラスで定義したくありません。どうすればこれを回避できますか?

4

3 に答える 3

2

その周りにガードを追加できます。このようなもの:

#ifndef ddLogLevel
#if DEBUG
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
static const int ddLogLevel = LOG_LEVEL_INFO;
#endif //DEBUG
#endif //ddLogLevel

ddLogLevel をガードとして使用できない場合: (今はテストできません)

#ifndef DDLOGLEVEL
#if DEBUG
#define DDLOGLEVEL
static const int ddLogLevel = LOG_LEVEL_VERBOSE;
#else
static const int ddLogLevel = LOG_LEVEL_INFO;
#endif //DEBUG
#endif //DDLOGLEVEL

うまくいくことを願っています。

于 2013-05-15T05:05:05.217 に答える
0

プリプロセッサ ディレクティブで定義をラップします。

#ifndef DEFINED_DD_LOG_LEVEL
#define DEFINED_DD_LOG_LEVEL
#  if DEBUG
...
#  endif // DEBUG
#endif // DEFINED_DD_LOG_LEVEL
于 2013-05-15T05:07:56.947 に答える