#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")))
IOS中经常看到UIKIT_EXTERN_CLASS and UIKIT_EXTERN着2个东西,
不太清楚什么意思,没有baidu什么答案。
google一下
找到这个解释。
http://developer.apple.com/library/mac/#documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html
下边这一段
When building for x86_64 Mac OS X or for iOS, symbol
visibility does affect objective-C classes. Hiding a class
is not a security panacea—enterprising developers can access any class with objective-C runtime calls—but if you directly reference a class whose visibility is hidden in a library you link to, you will get a linker error. This means that if a given class is
intended to be usable outside the library or executable it's defined in, you need to ensure proper symbol visibility.