FOUNDATION_EXPORT 或#define 或 extern

//我的.h文件

FOUNDATION_EXPORT NSString * const kMyConstantString;

FOUNDATION_EXPORT NSString * const kMyConstantString2;

//.m文件是这样定义的

NSString * const kMyConstantString = @"Hello";

NSString * const kMyConstantString2 = @"World";

//还有一种是常用的#define方法了

#define kMyConstantString @"Hello"

应该使用FOUNDATION_EXPORT还是#define来定义常量?

区别:

使用第一种方法在检测字符串的值是否相等的时候更快.

对于第一种你可以直接使用(stringInstance == MyFirstConstant)来比较,

而define则使用的是这种.([stringInstance isEqualToString:MyFirstConstant])

哪个效率高,显而易见了.

第一种直接比较的是指针地址,

而第二个则是一一比较字符串的每一个字符是否相等.

来源地址:点击打开链接

//TTGClass.h

extern NSString * const TTGClassWorkBeginNotification;

//TTGClass.m

NSString * const TTGClassWorkBeginNotification = @"TTGClassWorkBeginNotification";

“k”开头的命名,也算是Apple的规范了吧,内部常量统一以“k”开头。

关键:

头文件中只是做声明,不做定义。所以用extern表示常量在别处定义的,尽量隐藏细节。

同类名做常量名字的开头,这个非常关键,因为Objective-C里面没有像Java那样的“包”机制,所以必须靠命名来划分不同的类,常量当然也要遵循这个规则。

NSString,确定的类型;const,表明常量;Notification后缀,表明用途。这些都是需要注意的

转载:FOUNDATION_EXPORT 或#define 或 extern

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch...
    扶光启玄阅读 5,205评论 0 13
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,074评论 0 9
  • 1、const(常量---readonly) 作用: 用于修饰 右边 的基本变量或指针变量; 被修饰的变量只读...
    寻形觅影阅读 957评论 0 12
  • 花果山下有个家 冰梦吴卫 词 花果山下 花果山下 有你有我有个她 花果山下 花果山下 相亲相爱有个家 一片沧海...
    冰梦吴卫阅读 748评论 0 3
  • 这两天,大脑还是疲倦着不肯愉悦起来,可能是前两天参加上天入地《书声》的筹备活动给兴奋的吧,多巴胺分泌过量了,这会儿...
    IamElainexu阅读 309评论 0 0

友情链接更多精彩内容