OC 中定义全局常量的方法

使用 FOUNDATION_EXPORT 或者 #define方法来定义常量

以上两种方法都能定义常量但是第一种
.h 文件中

FOUNDATION_EXPORT NSString * const kConstString;  
FOUNDATION_EXPORT NSString * const kConstString2;

FOUNDATION_EXPORT CGFloat const kTittlesViewH;
FOUNDATION_EXPORT CGFloat const kTittlesViewY;

.m 文件中

NSString * const kConstString = @"Hello";
NSString * const kConstString2 = @"World";

CGFloat const kTittlesViewH = 35;
CGFloat const kTittlesViewY = 64;

另一种方法 #define kMyConstantString @"Hello"
但是第一种方法更快, 效率更高, 原因是第一种比较的是指针地址, 第二种是比较每个字符串是否相等. 显而易见, 第一种速度更快

还有另种是使用 static inline function

一些调用频繁的简单函数, 也可以使用以上方式, 相比定义宏来说, 此方法可以进行编译检查, 防止出错. 例如

static inline CGFloat screenWidth(){
    return [UIScreen mainScreen].bounds.size.width;
}

在其他地方调用即可

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

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,076评论 0 9
  • C中的预编译宏定义 2009-02-10 作者: infobillows 来源:网络 在将一个C源程序转换为可执行...
    白水灬煮一切阅读 1,732评论 0 5
  • Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好...
    small_Sun阅读 780评论 0 0
  • 言之否信,寥寥一生,只够爱一人,则余皆为惯兮,兴许身,绝无心。 犹兽初见亲,皆为至意,一生唯一,乃至卒尔不弃忆。 ...
    徐三道阅读 194评论 0 0
  • 这个平台只是用来吐槽的,即使是芝麻点大的小事,把所有的不快写下来只是一种发泄情绪的方式,也许以后回过头来看感觉自己...
    卑鄙者阅读 183评论 0 0

友情链接更多精彩内容