Предупреждение компилятора при попытке добавить #define DEBUG_MODE в мой файл prefix.pch - PullRequest
1 голос
/ 20 сентября 2011

Я пытаюсь выяснить, как убрать ведение журнала отладки из моего проекта, когда я собираю его для релиза и нашел отличную ветку здесь: Правда ли, что не следует использовать NSLog () в рабочем коде?

Немного ниже ответа другой пользователь объяснил, как включить / отключить определение DEBUG_MODE, поэтому я вошел точно так, как объяснено, то есть

В настройках проекта "макросы препроцессора",строка отладки уже читала «debug = 1», поэтому я добавил «debug_mode = 1» в конец строки, чтобы теперь она читала «debug = 1 debugmode = 1» (с промежуточным $ {наследуемым}, что бы это ни былоis ...)

Однако теперь я получаю предупреждение желтого цвета компилятора:

Проблема с лексикой или препроцессором, макрос "DEBUG_MODE" переопределен в строке в моем файле prefix.pch, куда я добавил:

#define DEBUG_MODE

#ifdef DEBUG_MODE
    #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
#define DebugLog( s, ... ) 
#endif

Если бы кто-то мог объяснить эту проблему, я был бы признателен.

1 Ответ

2 голосов
/ 20 сентября 2011

Просто измените его на:

#ifdef DEBUG
    #define DebugLog( s, ... ) NSLog( @"<%p %@:(%d)> %@", self, [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(s), ##__VA_ARGS__] )
#else
    #define DebugLog( s, ... ) 
#endif

Удалите #define DEBUG_MODE и удалите debugmode=1 из «макроса препроцессора». и ты в порядке.

Ошибка, которую вы получили, произошла из-за #define DEBUG_MODE, который уже был определен в «макросах препроцессора».

...