Директива iPhone #ifdef работает не так, как ожидалось

#iphone #ios

#iPhone #iOS

Вопрос:

Я использую Xcode 4 для обновления одного из моих приложений, которые ранее были разработаны с помощью Xcode 3.

В одной части кода у меня было:

 #define CREATE YES
  

и позже…

 #ifdef CREATE
// do stuff
#endif
  

в Xcode 3 эта ветвь будет выполняться только в том случае, если CREATE было yes, но теперь в Xcode 4 она выполняется постоянно.

Насколько я вижу, подход Xcode 4 представляется наиболее правильным, поскольку я спрашиваю, определена ли переменная, Xcode 3 работал так, как я хотел.

Итак, теперь, как мне проверить логическое значение CREATE в Xcode 4?

что-то вроде:

 #ifdef CREATE == YES
// DO STUFF
#endif
  

Спасибо.

Ответ №1:

 #define CREATE 1
#if CREATE
// do stuff
#else
//do other stuff
#endif
  

я думаю, это то, что вы ищете?

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

1. вот и все. Спасибо. Я не смог увидеть очевидное … : (

2. а зачем нужен #ifndef ?

Ответ №2:

попробуйте использовать директиву #if вместо #ifdef

 #define CREATE NO

#if CREATE
//This should not run.
#endif