Как создать отладочный код с помощью директивы #ifdef. Objective-c

#objective-c #debugging #conditional-compilation

#objective-c #отладка #условная компиляция

Вопрос:

я хочу задать вопрос о разработке с использованием директивы #ifdef.

Я хочу создать некоторый код на objective-c только для использования в отладке, например:

в основной функции сделайте это:

 #define DEBUG_LEVEL
  

в моем интерфейсе сделайте это:

 #ifdef DEBUG_LEVEL
BOOL editorIsDragged;
BOOL editorIsSelected;
#endif
  

…. другое свойство

 #ifdef #DEBUG_LEVEL
@property (nonatomic, readwrite) BOOL editorIsDragged;
@property (nonatomic, readwrite) BOOL editorIsSelected;
#endif
  

затем в моей реализации сделайте это:

 #ifdef #DEBUG_LEVEL
@synthetize editorIsDragged, editorIsSelected;
#endif
  

но я получаю ошибку, потому что в synthetize editorIsDragged и editorIsSelected не определены.
Если я пытаюсь определить свой собственный метод установки / получения, я получаю ту же ошибку, потому что мои переменные ( editorIsDragged и editorIsSelected ) не существуют для XCode!

Я в C использую этот метод только для написания отладочного кода, но в obj-c что я должен использовать??

Спасибо!

Ответ №1:

Разве вы не должны поместить свой #define DEBUG_LEVEL в файл заголовка, который включается во все места, где это необходимо знать? Например, установить в настройках сборки или ввести *.pch. И я не уверен, что это опечатка, но у вас также есть #define #DEBUG_LEVEL (см. Второй хэш?) в приведенном здесь коде.

Комментарии:

1. Кроме того, NDBEUG (без отладки) — это стандартный макрос, используемый для такого рода вещей, хотя он может быть немного уродливым с двойными отрицательными условными обозначениями.