Могу ли я #ifdef #imports? - PullRequest
       18

Могу ли я #ifdef #imports?

2 голосов
/ 09 февраля 2012

Могу ли я #ifdef #imports в target-c?

Например:

#ifdef USE_A
#import "ClassA.h"
#endif

#ifdef USE_B
#import "ClassB.h"
#endif

Ответы [ 3 ]

5 голосов
/ 09 февраля 2012

Да, это:

#ifdef USE_A
#import "ClassA.h"
#endif

действителен.

1 голос
/ 09 февраля 2012

Я полагаю, что директива #ifdef __OBJC__ обеспечивает импорт следующих библиотек для Objective-C. Цель этого if - не импортировать их, если в этом нет необходимости. Кроме того, таким образом код все еще может быть совместим с обычным кодом C, который может захотеть использовать функциональные возможности этого файла C (по крайней мере, так он выглядит для меня). Включая эти библиотеки только когда определен OBJC, это гарантирует, что библиотеки будут импортированы ТОЛЬКО при компиляции для цели c, а не для стандартной C.

#ifdef __OBJC__
#import <foundation/foundation.h>
#import <uikit/uikit.h>
#import <coredata/coredata.h>
#endif
0 голосов
/ 09 февраля 2012

Да, вы можете использовать #ifdef #imports в объективе-c.

 #ifdef MACRO

 controlled text

 #endif /* MACRO */

Этот блок называется условной группой.Управляемый текст будет включен в выходные данные препроцессора, если и только если определен MACRO.Мы говорим, что условие успешно, если определено MACRO, не выполнено, если это не так.Для получения более подробной информации смотрите GCC online docs .

...