iOS中關于宏定義與常量的使用

現(xiàn)在在做的這個產(chǎn)品,由于需求不斷的添加,工程越來越大,編譯速度是越來越慢。之前就看過帖子:

使用宏定義過多的話,隨著工程越來越大,編譯速度會越來越慢。

當時也想過替換成常量,但是當時的替換方法有問題,導致編譯的時候有很多重復的變量,替換失敗了,就不了了之,直到最近,每次編譯的時間實在是超出了我的容忍極限,于是下定決心,一定要替換掉。又從網(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ù)據(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探討!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 學習基礎知識,看了兩篇文章,記個筆記1、【如何正確使用const,static,extern】|那些人追的干貨2、...
    John_LS閱讀 9,944評論 1 28
  • C中的預編譯宏定義 2009-02-10 作者: infobillows 來源:網(wǎng)絡 在將一個C源程序轉(zhuǎn)換為可執(zhí)行...
    白水灬煮一切閱讀 1,742評論 0 5
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用,...
    LZM輪回閱讀 3,609評論 0 6
  • 中學學過《鄭伯克段于鄢》,講的是鄭莊公的母親不喜歡他,暗地里和莊公的弟弟密謀造反,被莊公給打敗的故事。 ...
    82082的奮斗史閱讀 170評論 0 1
  • 和好友聊了關于如何在社交中把握主動性。交往分為三種,一你需要我的幫忙,二我需要你的幫忙,三是純粹聊天想認識 首先一...
    夢想家小馬爺閱讀 555評論 0 0

友情鏈接更多精彩內(nèi)容