UIKIT_EXTERN 理解

摘自:http://www.cocoachina.com/ios/20171226/21653.html

如果多个.m文件需要用到myURL,可以在每一个.m文件都像下面这样初始化吗?

NSString * const myURL = @"http://xxx.xxx.xxx.xxx:8090";

肯定不行,编译时,会报重复定义.比如在pch文件中写上面这行代码,就相当于为每一个.m文件都写这行代码

要解决重复定义的问题,可以参照苹果的做法,比如系统预置的通知

UIKIT_EXTERN NSString *const UIKeyboardWillShowNotification;

UIKIT_EXTERN NSString *const UIKeyboardDidShowNotification;

UIKIT_EXTERN NSString *const UIKeyboardWillHideNotification;

UIKIT_EXTERN NSString *const UIKeyboardDidHideNotification;// UIKIT_EXTERN,是经过处理的extern

其实也可以用static修饰全局变量,表明该全局变量只对当前文件可见,但是不建议这么做,每个.m文件都这么做,比较浪费内存

你可能感兴趣的:(UIKIT_EXTERN 理解)