Я полагаю, что директива #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