//通用宏定義
#ifndef?define_h
#define?define_h
//獲取系統(tǒng)對(duì)象
#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的屏幕來(lái)拉伸
#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)前語(yǔ)言
#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對(duì)象
#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è)類(lèi)
#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];\
});\
returnshared##className;\
}
#endif?/*?define_h?*/