iOS 通用宏定義 高效全局宏匯總

//通用宏定義

#ifndef define_h

#define define_h

//獲取系統(tǒng)對象

#define kApplication[UIApplication sharedApplication]

#define kAppWindow[UIApplication sharedApplication].delegate.window

#define kAppDelegate[AppDelegate shareAppDelegate]

#define kRootViewController[UIApplication sharedApplication].delegate.window.rootViewController

#define kUserDefaults[NSUserDefaults standardUserDefaults]

#define kNotificationCenter[NSNotificationCenter defaultCenter]

//獲取屏幕寬高

#define KScreenWidth([[UIScreen mainScreen]bounds].size.width)

#define KScreenHeight[[UIScreen mainScreen]bounds].size.height

#define kScreen_Bounds[UIScreen mainScreen].bounds

#define Iphone6ScaleWidth KScreenWidth/375.0

#define Iphone6ScaleHeight KScreenHeight/667.0

//根據(jù)ip6的屏幕來拉伸

#define kRealValue(with)((with)*(KScreenWidth/375.0f))

//強弱引用

#define kWeakSelf(type)__weak typeof(type)weak##type = type;

#define kStrongSelf(type)__strong typeof(type)type = weak##type;

//View圓角和加邊框

#define ViewBorderRadius(View,Radius,Width,Color)\

\

[View.layer setCornerRadius:(Radius)];\

[View.layer setMasksToBounds:YES];\

[View.layer setBorderWidth:(Width)];\

[View.layer setBorderColor:[Color CGColor]]

// View圓角

#define ViewRadius(View,Radius)\

\

[View.layer setCornerRadius:(Radius)];\

[View.layer setMasksToBounds:YES]

//property屬性快速聲明

#define PropertyString(s)@property(nonatomic,copy)NSString * s

#define PropertyNSInteger(s)@property(nonatomic,assign)NSIntegers

#define PropertyFloat(s)@property(nonatomic,assign)floats

#define PropertyLongLong(s)@property(nonatomic,assign)long long s

#define PropertyNSDictionary(s)@property(nonatomic,strong)NSDictionary * s

#define PropertyNSArray(s)@property(nonatomic,strong)NSArray * s

#define PropertyNSMutableArray(s)@property(nonatomic,strong)NSMutableArray * s

///IOS版本判斷

#define IOSAVAILABLEVERSION(version)([[UIDevice currentDevice]availableVersion:version]< 0)

//當前系統(tǒng)版本

#define CurrentSystemVersion[[UIDevice currentDevice].systemVersion doubleValue]

//當前語言

#define CurrentLanguage([NSLocale preferredLanguages]objectAtIndex:0])

//-------------------打印日志-------------------------

//DEBUG模式下打印日志,當前行

#ifdef DEBUG

#define DLog(fmt,...)NSLog((@"%s[Line %d]" fmt),__PRETTY_FUNCTION__,__LINE__,##__VA_ARGS__);

#else

#define DLog(...)

#endif

//拼接字符串

#define NSStringFormat(format,...)[NSString stringWithFormat:format,##__VA_ARGS__]

//顏色

#define KClearColor[UIColor clearColor]

#define KWhiteColor[UIColor whiteColor]

#define KBlackColor[UIColor blackColor]

#define KGrayColor[UIColor grayColor]

#define KGray2Color[UIColor lightGrayColor]

#define KBlueColor[UIColor blueColor]

#define KRedColor[UIColor redColor]

#define kRandomColorKRGBColor(arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0)//隨機色生成

//字體

#define BOLDSYSTEMFONT(FONTSIZE)[UIFont boldSystemFontOfSize:FONTSIZE]

#define SYSTEMFONT(FONTSIZE)[UIFont systemFontOfSize:FONTSIZE]

#define FONT(NAME,FONTSIZE)[UIFont fontWithName:(NAME)size:(FONTSIZE)]

//定義UIImage對象

#define ImageWithFile(_pointer)[UIImage imageWithContentsOfFile:([[NSBundle mainBundle]pathForResource:[NSString stringWithFormat:@"%@@%dx",_pointer,(int)[UIScreen mainScreen].nativeScale]ofType:@"png"])]

#define IMAGE_NAMED(name)[UIImage imageNamed:name]

//數(shù)據(jù)驗證

#define StrValid(f)(f!=nil &&[f isKindOfClass:[NSString class]]&& ![f isEqualToString:@""])

#define SafeStr(f)(StrValid(f)?f:@"")

#define HasString(str,eky)([str rangeOfString:key].location!=NSNotFound)

#define ValidStr(f)StrValid(f)

#define ValidDict(f)(f!=nil &&[f isKindOfClass:[NSDictionary class]])

#define ValidArray(f)(f!=nil &&[f isKindOfClass:[NSArray class]]&&[f count]>0)

#define ValidNum(f)(f!=nil &&[f isKindOfClass:[NSNumber class]])

#define ValidClass(f,cls)(f!=nil &&[f isKindOfClass:[cls class]])

#define ValidData(f)(f!=nil &&[f isKindOfClass:[NSData class]])

//獲取一段時間間隔

#define kStartTime CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();

#define kEndTimeNSLog(@"Time: %f",CFAbsoluteTimeGetCurrent()- start)

//打印當前方法名

#define ITTDPRINTMETHODNAME()ITTDPRINT(@"%s",__PRETTY_FUNCTION__)

//GCD

#define kDISPATCH_ASYNC_BLOCK(block)dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0),block)

#define kDISPATCH_MAIN_BLOCK(block)dispatch_async(dispatch_get_main_queue(),block)

//GCD -一次性執(zhí)行

#define kDISPATCH_ONCE_BLOCK(onceBlock)static dispatch_once_t onceToken;dispatch_once(&onceToken,onceBlock);

//單例化一個類

#define SINGLETON_FOR_HEADER(className)\

\

+(className *)shared##className;

#define SINGLETON_FOR_CLASS(className)\

\

+(className *)shared##className { \

static className *shared##className = nil;\

static dispatch_once_t onceToken;\

dispatch_once(&onceToken,^{ \

shared##className =[[self alloc]init];\

});\

return shared##className;\

}

#endif /* define_h */

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市槐秧,隨后出現(xiàn)的幾起案子啄踊,更是在濱河造成了極大的恐慌,老刑警劉巖刁标,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颠通,死亡現(xiàn)場離奇詭異,居然都是意外死亡命雀,警方通過查閱死者的電腦和手機蒜哀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來吏砂,“玉大人狐血,你說我怎么就攤上這事浪默∨鲆荩” “怎么了饵史?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵吭露,是天一觀的道長。 經(jīng)常有香客問我戴卜,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮挑豌,結(jié)果婚禮上鹦筹,老公的妹妹穿的比我還像新娘徘键。我一直安慰自己螟凭,他們只是感情好挟憔,可當我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般宗弯。 火紅的嫁衣襯著肌膚如雪蒙保。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天,我揣著相機與錄音,去河邊找鬼敞掘。 笑死,一個胖子當著我的面吹牛疯潭,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼乌企,長吁一口氣:“原來是場噩夢啊……” “哼拳喻!你這毒婦竟也來了陋葡?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤绍在,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后溜宽,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體煤惩,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了登渣。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片仇味。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情哎垦,我是刑警寧澤郑口,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至宣赔,卻和暖如春钩蚊,著一層夾襖步出監(jiān)牢的瞬間蝠咆,已是汗流浹背菊霜。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工贺拣, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留啥辨,地道東北人涡匀。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓甚淡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親焙贷。 傳聞我的和親對象是個殘疾皇子盈厘,可洞房花燭夜當晚...
    茶點故事閱讀 44,871評論 2 354

推薦閱讀更多精彩內(nèi)容