макросы препроцессора xcode LLVM 4.2

Я пытаюсь установить макрос DEBUG_MODE для DLOG, чтобы он работал только в режиме отладки, но он не работает ...

Что я пробовал до сих пор: http://developer.sinnerschrader-mobile.com/llvm-preprocessor-macros-xcode/275/

и присвоение еще одного флага имени DEBUG_MODE, воспроизведение комбинаций со значением $ (унаследованное) или без него.

Я все запутался, что означает выделенная зеленым цветом часть? и почему некоторые части отображаются пустыми, но при нажатии на них видны значения?

Как мне настроить макросы так, чтобы я действительно мог получить к ним доступ для:

#ifdef DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...) do { } while (0)
#endif

введите описание изображения здесь

РЕДАКТИРОВАТЬ:

Это стало действительно злым! Я установил для всех значений DEBUG = 0 в режиме выпуска. И изменил

#if DEBUG
#   define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
#   define DLog(...) do { } while (0)
#endif

все еще вижу все журналы в выпуске ...

введите описание изображения здесь


person tugce    schedule 31.01.2013    source источник


Ответы (1)


Ваши настройки макроса препроцессора (Debug - DEBUG=1, а Release - DEBUG=0) приведут к использованию первого определения макроса DLog(), если вы использовали #ifdef (если он определен) для предоставления различных реализаций. Это связано с тем, что макрос будет определен, если вы его вообще определите, независимо от того, для чего вы его определяете.

Вам нужно либо:

  • Удалите DEBUG=0 из профиля выпуска.
  • Используйте #if DEBUG вместо #ifdef DEBUG.
person trojanfoe    schedule 31.01.2013
comment
@tugce Теперь ваш код мне кажется нормальным; Я ожидал, что это сработает. Вы хотите сказать, что DLog() производит вывод в режиме Release? - person trojanfoe; 31.01.2013
comment
да, к сожалению, в режиме выпуска DLog () все еще производит вывод - person tugce; 31.01.2013
comment
@tugce Необходимо убедиться, что вы очистили и перестроили весь свой проект? - person trojanfoe; 31.01.2013
comment
вау, это все мои неправильные предположения о режимах выпуска и отладки. Создал новую схему выпуска и работал как шарм. Спасибо за помощь - person tugce; 31.01.2013