#if
и т. Д. Являются директивами препроцессора. Это означает, что они рассматриваются до компиляции, а не во время выполнения. Это может быть полезно, например, при определении поведения отладки, которое компилируется только при сборке для debug
, а не release
:
#if DEBUG
#define ISRelease(x) [x release]
#else
#define ISRelease(x) [x release], x = nil
#endif
(Код любезно предоставлен Jeff LaMarche's blog .)
Таким образом, вам не нужно проходить весь код вашего приложения перед тем, как вы отправите свое приложение и удалите загрузочный код отладки. Это только один небольшой пример использования этих директив.