定义常量的方法比较

2016-01-15  本文已影响61人  abyte

定义常量的方法

  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

上一篇下一篇

猜你喜欢

热点阅读