iOS中关于宏定义与常量的使用

发布时间:2019-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了iOS中关于宏定义与常量的使用脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

现在在做的这个产品,由于需求不断的添加,工程越来越大,编译速度是越来越慢。之前就看过帖子:

使用宏定义过多的话,随着工程越来越大,编译速度会越来越慢。

当时也想过替换成常量,但是当时的替换方法有问题,导致编译的时候有很多重复的变量,替换失败了,就不了了之,直到最近,每次编译的时间实在是超出了我的容忍极限,于是下定决心,一定要替换掉。又从网上查看帖子,从简书上看到了这篇文章【如何正确使用const,static,extern】|那些人追的干货,仔细阅读,研究,询问博主之后,终于尘埃落定,替换了之前使用宏定义的常量。

现在献上一段代码:

static CGFloat const kLOGoImageWidth = 100; //logo
static CGFloat const kLogoImageHeight = 100; //logo宽度
static CGFloat const kLogoImageY = 110;
static CGFloat const kBTnHeight = 40;
static CGFloat const kPadding = 30;
static CGFloat const kWeixinTopPadding = 15;
static CGFloat const kWeiboLoginBottom = 230;
#define kScaleSpace(designSpace) ((designSpace)*(SCREEN_HEIGHT/667.0)) //根据iphone6 的设计稿计算缩放高度

替换的时候一定要注意数据类型。对于 CGFloat 和 NSString类型替换的时候也是一样的。代码如下:

static CGFloat const kBottomHeight = 50.0; //底部视图高度
static NSString   *const CELL_TITLE_KEY = @"CELL_TITLE_KEY";
static NSString   *const CELL_CONTENT_KEY = @"CELL_CONTENT_KEY";

替换完成之后代码的编译速度确实上去了,现在编译快了。希望对正在为编译速度慢感到困惑的您有所帮助!

补充说明:以上的类型常量替换宏的情况,只是适用于单个文件的情况。如果是多个文件共享的常量,苹果推荐的这样的方式:

  • UserInfoModelConstants.h
 extern NSString *const USER_AGE_KEY         ;
 extern NSString *const USER_TELPHONE_KEY    ;
 extern NSString *const USER_ADDRESS_KEY     ;
 extern NSString *const USER_brIEF_KEY       ;
  • UserInfoModelConstants.m
 NSString *const BKUSER_AGE_KEY         =     @"XXXXX.userAge";
 NSString *const BKUSER_TELPHONE_KEY    =     @"XXXXX.telphoneNO";
 NSString *const BKUSER_ADDRESS_KEY     =     @"XXXXX.address"; 
 NSString *const BKUSER_BRIEF_KEY       =     @"XXXXX.brief";

在需要使用共享常量的文件中引入UserInfoModelConstants.h即可。如果还有什么不足的地方希望大家指出。

以上只是我在阅读别的帖子之后的一点体验和总结,如果有疑问欢迎微博@蓝光95_176探讨!

脚本宝典总结

以上是脚本宝典为你收集整理的iOS中关于宏定义与常量的使用全部内容,希望文章能够帮你解决iOS中关于宏定义与常量的使用所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。