iOS開發中使用巨集定義提高開發效率

2021-06-28 19:59:49 字數 2587 閱讀 4892

ios開發中,巧妙的使用巨集定義,可以提高開發效率,本篇簡單介紹一下巨集的定義,設定,應用,並在未來實踐中不斷追加一些常用的巨集定義。

iphone應用程式開發除錯的時候,在**中加入nslog的暴力除錯方法是很頻繁的,但是在release的時候要刪除這些除錯**,那工作量是煩躁,這樣的情況下,試用巨集就會顯得非常的方便。 看下面的例子:

#ifdef debug

#define log(...) nslog(__va_args__);

#define log_method nslog(@"%s", __func__);

#else

#define log(...);

#define log_method;

#endif

像上面例子這些巨集,projectname_prefix.pch中追加之後,不用import就能直接在工程的檔案中直接試用了。

1.開啟工程設定

2.「targets」下選擇設定對應工程「build setting」

3.「*** – preprocessing」選項下的「preprocessor macros」專案的「debug」中追加對應的引數

log(@"data:%@",str);

log_method

大家可以根據專案的需要新增各種log處理的形式,這樣就方便許多了。

#ifdef debug

#define dnslogpoint(p) nslog(@"%f,%f", p.x, p.y);

#define dnslogsize(p) nslog(@"%f,%f", p.width, p.height);

#define dnslogrect(p) nslog(@"%f,%f,%f,%f", p.origin.x, p.origin.y, p.size.width, p.size.height,);

#else

#define dnslogpoint(p);

#define dnslogsize(p);

#define dnslogrect(p);

除了debug,有時候有很多的配置用巨集的話,寫**也沒有那麼煩躁,比如說google analytics的設定

#define ga_trackpage(page)  log(@"ga /%@", page); };

#define ga_trackevent(event,action,label,value) log(@"ga %@/%@/%@", event, action, label); };

#define ga_track_class ga_trackpage(nsstringfromclass([self class]));

#define ga_track_method ga_trackevent(nsstringfromclass([self class]),nsstringfromselector(_cmd), @」」, -1); }

#define reloadbarbutton [[[uibarbuttonitem alloc]initwithimage:reloadbarbuttonicon

style:uibarbuttonitemstyleplain

target:selfaction:@selector(contentsreload:)]

autorelease]

參照c語言的預處理命令簡介 :

#define 

定義乙個預處理巨集

#undef 

取消巨集的定義

#include 

包含檔案命令

#include_next 

與#include相似, 但它有著特殊的用途

#if 

編譯預處理中的條件命令, 相當於c語法中的if語句

#ifdef 

判斷某個巨集是否被定義, 若已定義, 執行隨後的語句

#ifndef 

與#ifdef相反, 判斷某個巨集是否未被定義

#elif 

若#if, #ifdef, #ifndef或前面的#elif條件不滿足, 則執行#elif之後的語句, 相當於c語法中的else-if

#else 

與#if, #ifdef, #ifndef對應, 若這些條件不滿足, 則執行#else之後的語句, 相當於c語法中的else

#endif 

#if, #ifdef, #ifndef這些條件命令的結束標誌.

defined 

與#if, #elif配合使用, 判斷某個巨集是否被定義

#line 

標誌該語句所在的行號

#  將巨集引數替代為以引數值為內容的字元竄常量

##  將兩個相鄰的標記(token)連線為乙個單獨的標記

#pragma 

說明編譯器資訊#warning 

顯示編譯警告資訊

#error 

顯示編譯錯誤資訊

#define safe_release(obj) if(obj) 釋放

參考文件:

iOS開發中使用巨集定義提高開發效率

feb02 2012 ios高階篇 閱讀 658 views ios開發中,巧妙的使用巨集定義,可以提高開發效率,本篇簡單介紹一下巨集的定義,設定,應用,並在未來實踐中不斷追加一些常用的巨集定義。iphone應用程式開發除錯的時候,在 中加入nslog的暴力除錯方法是很頻繁的,但是在release的...

iOS開發中使用巨集定義提高開發效率

ios開發中,巧妙的使用巨集定義,可以提高開發效率,本篇簡單介紹一下巨集的定義,設定,應用,並在未來實踐中不斷追加一些常用的巨集定義。iphone應用程式開發除錯的時候,在 中加入nslog的暴力除錯方法是很頻繁的,但是在release的時候要刪除這些除錯 那工作量是煩躁,這樣的情況下,試用巨集就會...

iOS開發中的常用巨集定義

在ios開發的過程中合理的使用巨集定義能夠極大提高編碼的速度,下面是一些常用的巨集定義,部分內容來自網際網路 除錯狀態,開啟log功能 ifdef debug define gllog nslog va args define gllogmethod nslog s func else 發布狀態,關...