定义常量的方法比较

定义常量的方法

  1. 采用宏定义
#define kConstantString @"kConstantString"
  1. 使用FOUNDATION_EXPORT
.h
FOUNDATION_EXPORT NSString *kConstantString1;

 .m
NSString *kConstantString1 = @"kConstantString1";
  1. 使用extern
.h
extern NSString *const kConstantString2;

.m
NSString *const kConstantString2 = @"kConstantString2"; 

他们的区别呢?

可以参考这里的回答,用FOUNDATION_EXPORT可以编译成C中的extern,C++的extern "C",为了更好的和其他语言共存,所以说FOUNDATION_EXPORT比extern好。

那么FOUNDATION_EXPORT和#define比较呢

推荐使用FOUNDATION_EXPORT这种带类型的常量定义
比如说

static const CGFloat kPadding = 0.2;
#define kPadding = 0.2;

第一种带类型的常量可以显性的告知程序员该常量的类型,方便开发阅读

总结

多使用FOUNDATION_EXPORT而不是extern和#define

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容