Когда я перехожу к определению классов в документации, я всегда вижу эти две вещи (UIKIT_EXTERN_CLASS и UIKIT_EXTERN) перед @interface, что означают эти константы и почему Apple помещает их перед их классами?
И еще одно, есть файл UIKitDefines.h, и он имеет все эти определения/константы.
#ifdef __cplusplus
#define UIKIT_EXTERN extern "C" __attribute__((visibility ("default")))
#else
#define UIKIT_EXTERN extern __attribute__((visibility ("default")))
#endif
#define UIKIT_STATIC_INLINE static inline
#define UIKIT_EXTERN_CLASS __attribute__((visibility("default")))