UIKIT_EXTERN简单来说,就是将函数修饰为兼容以往C编译方式的、具有extern属性(文件外可见性)、public修饰的方法或变量库外仍可见的属性。
再看看NSNotificationName,
typedef NSString *NSNotificationName NS_EXTENSIBLE_STRING_ENUM;
其实就是NSString *。
// Foo.h
UIKIT_EXTERN NSNotificationName const ZOCFooDidBecomeBarNotification
// Foo.m
NSNotificationName const ZOCFooDidBecomeBarNotification = @"ZOCFooDidBecomeBarNotification";