現(xiàn)在在做的這個產(chǎn)品,由于需求不斷的添加谬擦,工程越來越大切距,編譯速度是越來越慢。之前就看過帖子:
使用宏定義過多的話惨远,隨著工程越來越大谜悟,編譯速度會越來越慢。
當時也想過替換成常量北秽,但是當時的替換方法有問題葡幸,導(dǎo)致編譯的時候有很多重復(fù)的變量,替換失敗了贺氓,就不了了之蔚叨,直到最近,每次編譯的時間實在是超出了我的容忍極限掠归,于是下定決心缅叠,一定要替換掉。又從網(wǎng)上查看帖子虏冻,從簡書上看到了這篇文章【如何正確使用const,static,extern】|那些人追的干貨肤粱,仔細閱讀,研究厨相,詢問博主之后领曼,終于塵埃落定,替換了之前使用宏定義的常量。
現(xiàn)在獻上一段代碼:
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)) //根據(jù)iphone6 的設(shè)計稿計算縮放高度
替換的時候一定要注意數(shù)據(jù)類型蛮穿。對于 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";
替換完成之后代碼的編譯速度確實上去了,現(xiàn)在編譯快了践磅。希望對正在為編譯速度慢感到困惑的您有所幫助单刁!
補充說明:以上的類型常量替換宏的情況,只是適用于單個文件的情況府适。如果是多個文件共享的常量羔飞,蘋果推薦的這樣的方式
- UserInfoModelConstants.h
extern NSString *const BKUSER_AGE_KEY ;
extern NSString *const BKUSER_TELPHONE_KEY ;
extern NSString *const BKUSER_ADDRESS_KEY ;
extern NSString *const BKUSER_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
即可肺樟。如果還有什么不足的地方希望大家指出。
以上只是我在閱讀別的帖子之后的一點體驗和總結(jié)逻淌,如果有疑問歡迎微博@藍光95_176探討么伯!