1、debug 模式下列印日誌,當前行
2、判斷是真機 還是模擬器[注:記得先判斷是否為模擬器咯,否則會失敗的]#ifdef debug
#define nslog(format, ...)
do
while (0)
#else
#define nslog(...)
#endif
3、獲取系統版本#if target_iphone_simulator//模擬器
#define is_iphone 0
#elif target_os_iphone//真機
#define is_iphone 1
#endif
4,不考慮轉屏的影響,只取豎屏(uideviceorientationportrait)的寬高#define ios_version [[[uidevice currentdevice] systemversion] floatvalue]
#define currentsystemversion [[uidevice currentdevice] systemversion]
5、 判斷裝置是否是iphone/ipad#define
screen_width
min([uiscreenmainscreen]
.bounds
.size
.width, [uiscreenmainscreen]
.bounds
.size
.height)
#define
screen_height
max([uiscreenmainscreen]
.bounds
.size
.height, [uiscreenmainscreen]
.bounds
.size
.width)
#define
statusbar_height
.statusbarframe
.size
.statusbarframe
.size
.height)
6、使用arc和不使用arc#define is_iphone (ui_user_inte***ce_idiom() == uiuserinte***ceidiomphone)
#define is_ipad (ui_user_inte***ce_idiom() == uiuserinte***ceidiompad)
7、單例化乙個類#if __has_feature(objc_arc)
//compiling with arc
#else
// compiling without arc
#endif
8、釋放記憶體#define synthesize_singleton_for_class(classname)
static classname *shared##classname = nil;
+ (classname *)shared##classname
} return shared##classname;
} + (id)allocwithzone:(nszone *)zone
} return
nil;
} - (id)copywithzone:(nszone *)zone
9、由角度獲取弧度 有弧度獲取角度#define release_safe(_pointer)
dowhile(0)
#endif
10、設定view的tag屬性#define degreestoradian(x) (m_pi * (x) / 180.0)
#define radiantodegrees(radian) (radian*180.0)/(m_pi)
11、g-c-d#define viewwithtag(_object, _tag) [_object viewwithtag : _tag]
//程式的本地化,引用國際化的檔案
#define mylocal(x, ...) nslocalizedstring(x, nil)
12、定義乙個define函式#define
back(block)
dispatch_async(dispatch_get_global_queue(dispatch_queue_priority_default, 0), block)
#define
main(block)
dispatch_async(dispatch_get_main_queue(),block)
13、檢查系統版本#define tt_release_cf_safely(__ref)
}
#define system_version_equal_to(v) ([[[uidevice currentdevice] systemversion] compare:v options:nsnumericsearch] == nsorderedsame)
#define system_version_greater_than(v) ([[[uidevice currentdevice] systemversion] compare:v options:nsnumericsearch] == nsordereddescending)
#define system_version_greater_than_or_equal_to(v) ([[[uidevice currentdevice] systemversion] compare:v options:nsnumericsearch] != nsorderedascending)
#define system_version_less_than(v) ([[[uidevice currentdevice] systemversion] compare:v options:nsnumericsearch] == nsorderedascending)
#define system_version_less_than_or_equal_to(v) ([[[uidevice currentdevice] systemversion] compare:v options:nsnumericsearch] != nsordereddescending)
ios 巨集定義
這個不是ios 應該算是c裡面的 巨集定義巨集定義是c提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。1 編輯本段引數 不帶引數 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define識別符號字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預...
iOS常用巨集定義
獲取當前螢幕的寬高 define kscreenw uiscreen mainscreen bounds size.width define kscreenh uiscreen mainscreen bounds size.height 判斷當前系統版本 define ios9 uidevice c...
ios 巨集定義除錯
nslog遮蔽輸出 使用nslog的乙個風險是 它的執行會占用時間和裝置資源。當我們用simulator時,nslog的資源占用並不引人注意,風險也不會顯示出來。但是如果你寫的是乙個即時戰略遊戲,而你在每乙個action中都加入了nslog 那麼nslog將成為乙個魔鬼。災難的具體表現常常是 你在s...