前言
我們在寫代碼的時候往往會使用一些預(yù)編譯邻眷,這樣會方便我們功能代碼的編寫蔓钟。這是我在工作中所使用的預(yù)編譯的命令科吭,分享出來給大家囤萤。
中心
//定義常量
//導(dǎo)航欄高度
#define kNaivgationBarHeight 44
//屏幕寬高
#define KSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
#define KSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
//內(nèi)存管理安全釋放對象
#define SAFE_RELEASE(x) [x release];x=nil
//判斷系統(tǒng)的版本
#define kCurrentSystemVersion [[[UIDevice currentDevice] systemVersion] floatValue]
//判斷是否是ios7或者更高的版本
#define IOS_VERSION_7_OR_LATER (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)? (YES):(NO))
//當(dāng)前系統(tǒng)的語言
#define kCurrentLanguage [[NSLocale preferredLanguages] objectAtIndex : 0]
//定義更高級的DLog
//#define DEBUG_MODE 1
#ifdef DEBUG
#define YF_Log(s,...) NSLog (@"<%p %@:(%d)> %@",self,[[NSString stringWithUTF8String:__FILE__] lastPathComponent],__LINE__,[NSString stringWithFormat:(s),##__VA_ARGS__])
#else
#define YF_Log(s,...)
#endif
//判斷是不是真機(jī)
#if TARGET_OS_IPHONE
//操作
#elif TARGET_IPHONE_SIMULATOR
//操作
#endif
說到這我再多說幾句纯出,平時我們的調(diào)試很多都是用NSLog進(jìn)行輸出查看結(jié)果蚯妇。但是我們不要只會運(yùn)行簡單的輸出參數(shù)這一點(diǎn)敷燎。
NSLog(@"這是哪個方法運(yùn)行的--%s",__func__);
NSLog(@"這句代碼在哪一行--%d",__LINE__);
NSLog(@"這個文件所在的位置--%s",__FILE__);
輸出結(jié)果:
2016-03-07 13:56:02.993 預(yù)編譯[4297:235750] 這是哪個方法運(yùn)行的---[ViewController viewDidLoad]
2016-03-07 13:56:02.993 預(yù)編譯[4297:235750] 這句代碼在哪一行--23
2016-03-07 13:56:02.993 預(yù)編譯[4297:235750] 這個文件所在的位置--/Users/syf/Desktop/MyText/è¢?áo????/è¢?áo????/ViewController.m
這樣你會有更好的輸出結(jié)果。
如果你想在調(diào)試這一方面有個提高箩言,你可以去看看LLDB,在我們的控制臺去做各種操作硬贯。很適合裝xx,但是很實(shí)用的呀陨收。