iOS开发

iOS-extern、UIKIT_EXTERN、FOUNDATI

2021-06-28  本文已影响0人  Imkata

1. extern

extern就是我们在.m中定义一个常量,然后在.h中通过extern引出到外部。

2. UIKIT_EXTERN

//UIKitDefines.h

#ifdef __cplusplus
#define UIKIT_EXTERN        extern "C" __attribute__((visibility ("default")))
#else
#define UIKIT_EXTERN            extern __attribute__((visibility ("default")))
#endif

代码解释参考:https://www.cnblogs.com/hissia/p/5643151.html

UIKIT_EXTERN简单来说:就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性。

3. FOUNDATION_EXPORT

//NSObjCRuntime.h

#if defined(__cplusplus)
#define FOUNDATION_EXTERN extern "C"
#else
#define FOUNDATION_EXTERN extern
#endif

#define FOUNDATION_EXPORT FOUNDATION_EXTERN
#define FOUNDATION_IMPORT FOUNDATION_EXTERN

可以发现,FOUNDATION_EXPORT和FOUNDATION_IMPORT都是FOUNDATION_EXTERN,并且FOUNDATION_EXTERN的定义只是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)的属性。

总结:平常iOS开发中,不管是NSString还是CGFloat等等,想用哪个用哪个,参考一些三方库的使用频率,FOUNDATION_EXPORT > UIKIT_EXTERN > extern

上一篇下一篇

猜你喜欢

热点阅读