ios開發中,巧妙的使用巨集定義,可以提高開發效率,本篇簡單介紹一下巨集的定義,設定,應用,並在未來實踐中不斷追加一些常用的巨集定義。
iphone應用程式開發除錯的時候,在**中加入nslog的暴力除錯方法是很頻繁的,但是在release的時候要刪除這些除錯**,那工作量是煩躁,這樣的情況下,試用巨集就會顯得非常的方便。 看下面的例子:
#ifdef debug像上面例子這些巨集,projectname_prefix.pch中追加之後,不用import就能直接在工程的檔案中直接試用了。#define log(...) nslog(__va_args__);
#define log_method nslog(@"%s", __func__);
#else
#define log(...);
#define log_method;
#endif
1.開啟工程設定
2.「targets」下選擇設定對應工程「build setting」
3.「*** – preprocessing」選項下的「preprocessor macros」專案的「debug」中追加對應的引數
log(@"data:%@",str);大家可以根據專案的需要新增各種log處理的形式,這樣就方便許多了。log_method
#ifdef debug除了debug,有時候有很多的配置用巨集的話,寫**也沒有那麼煩躁,比如說google analytics的設定#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);
#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:self
action:@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 發布狀態,關...