定义常量的方法比较

定义常量的方法

  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

posted @ 2016-01-15 10:46  bytehello  阅读(4)  评论(0)    收藏  举报  来源