iOS通用宏

從別的地方copy過來的,存在簡書上備忘,方便自己查閱牙瓢,如有侵權(quán)請告知?jiǎng)h除????

//通用宏定義
 
#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))
 
//強(qiáng)弱引用
 
#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)
 
//當(dāng)前系統(tǒng)版本
 
#define CurrentSystemVersion[[UIDevice currentDevice].systemVersion doubleValue]
 
//當(dāng)前語言
 
#define CurrentLanguage([NSLocale preferredLanguages]objectAtIndex:0])
 
//-------------------打印日志-------------------------
 
//DEBUG模式下打印日志,當(dāng)前行
 
#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)//隨機(jī)色生成
 
//字體
 
#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ù)驗(yàn)證
 
#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]])
 
//獲取一段時(shí)間間隔
 
#define kStartTime CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();
 
#define kEndTimeNSLog(@"Time: %f",CFAbsoluteTimeGetCurrent()- start)
 
//打印當(dāng)前方法名
 
#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);
 
//單例化一個(gè)類
 
#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)系作者
  • 序言:七十年代末酌儒,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子为居,更是在濱河造成了極大的恐慌碌宴,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蒙畴,死亡現(xiàn)場離奇詭異贰镣,居然都是意外死亡呜象,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門碑隆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來恭陡,“玉大人,你說我怎么就攤上這事上煤⌒萃妫” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵劫狠,是天一觀的道長拴疤。 經(jīng)常有香客問我,道長独泞,這世上最難降的妖魔是什么呐矾? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮阐肤,結(jié)果婚禮上凫佛,老公的妹妹穿的比我還像新娘。我一直安慰自己孕惜,他們只是感情好愧薛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著衫画,像睡著了一般毫炉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上削罩,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天瞄勾,我揣著相機(jī)與錄音,去河邊找鬼弥激。 笑死进陡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的微服。 我是一名探鬼主播趾疚,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼以蕴!你這毒婦竟也來了糙麦?” 一聲冷哼從身側(cè)響起酿箭,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤敷矫,失蹤者是張志新(化名)和其女友劉穎铅檩,沒想到半個(gè)月后蛋欣,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡镇辉,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年知允,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了撤防。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡节值,死狀恐怖徙硅,靈堂內(nèi)的尸體忽然破棺而出榜聂,到底是詐尸還是另有隱情搞疗,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布须肆,位于F島的核電站匿乃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏豌汇。R本人自食惡果不足惜幢炸,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望拒贱。 院中可真熱鬧宛徊,春花似錦、人聲如沸逻澳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽斜做。三九已至苞氮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瓤逼,已是汗流浹背笼吟。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留霸旗,地道東北人贷帮。 一個(gè)月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像诱告,于是被迫代替她去往敵國和親撵枢。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評論 2 354

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