//Downloader
#define DOCUMENTS_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/"]
#define kNetWorkErrorString @"网络错误"
#define kAllDataLoaded @"已加载完所有数据"
#define USHARE_DEMO_APPKEY @"59f99acf734be411fe00001e"//分享
#define UMessage_DEMO_APPKEY @"5a177ccab27b0a1aaa000155"//推送
//App Constant Values
#define kLoginUserDataFile @"LoginUserDataFile"
#define kLoginInDataFile @"LoginInDataFile"
#define D_width SCREENWIDTH/375
#define D_height SCREENHEIGHT/667
//正常地址
#define k_BASE_URL(url) [NSString stringWithFormat:@"%@%@",BaseURL,url]
#define k_BASE_ImgURL(url) [NSString stringWithFormat:@"%@%@",HeadURL,url]
//屏幕宽高等
#define winWidth [[UIScreen mainScreen] bounds].size.width
#define winHeight [[UIScreen mainScreen] bounds].size.height
#define statusHeight (winHeight == 812.0 ? 44 : 20)
#define naviHeight (winHeight == 812.0 ? 88 : 64)
#define tabBarHeight (winHeight == 812.0 ? 83.0f : 49.0f)
//#define tabHeight 39
#define safeBotHeight (winHeight == 812.0 ? 20 : 0)
#define marginSpace 10
//各种系统版本
#define IOS11Later (@available(iOS 11, *))
#define IOS10Later (@available(iOS 10, *))
#define IOS9Later (@available(iOS 9, *))
//取消自动缩进
#define CancelAutoInset(scrollview) if (@available(iOS 11.0, *)) {
scrollview.contentInsetAdjustmentBehavior = UIApplicationBackgroundFetchIntervalNever;
} else {
self.automaticallyAdjustsScrollViewInsets = false;
}
//字体
#define Thin(num) [UIFont systemFontOfSize:num weight:UIFontWeightThin]
#define Light(num) [UIFont systemFontOfSize:num weight:UIFontWeightLight]
#define Regular(num) [UIFont systemFontOfSize:num weight:UIFontWeightRegular]
#define Sbold(num) [UIFont systemFontOfSize:num weight:UIFontWeightSemibold]
#define Bold(num) [UIFont systemFontOfSize:num weight:UIFontWeightBold]
//从设置文件里读取当前版本号
#define AppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]
#define WS(weakSelf) __weak __typeof(&*self)weakSelf = self;
//优化NSLog
#ifdef DEBUG
#define NSLog(format,...) printf("%s ",[[NSString stringWithFormat:(format), ##__VA_ARGS__] UTF8String])
#else
#define NSLog(...)
#endif
#define WeakObj(o) @autoreleasepool{} __weak typeof(o) o##Weak = o;
// 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]
#define RGB(r, g, b) [UIColor colorWithRed:r/255.0 green:g/255.0 blue:b/255.0 alpha:1]
#define RGBA(r,g,b,a) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:(a)]
#define kGlobalBg RGB(240, 240, 240)
#define kGlobalTintColor RGBColor(28, 26, 35 ,1)
#define kBGBaseColor RGB(0, 155, 248)
#define kNewFile RGB(0, 185, 55)
#define kGrayTitle RGB(111, 113, 121)
#define kOrangeColor RGB(255, 183, 51)
#define kRedColor RGB(241, 90, 90)
#define kBlueColor RGB(39, 140, 204)
//3秒消失 -success
#define SVProgressShowSuccessWithInfo(s) {[SVProgressHUD setDefaultStyle:SVProgressHUDStyleCustom]; [SVProgressHUD setBackgroundColor:BarTintColor];[SVProgressHUD setForegroundColor:WHITE];[SVProgressHUD showSuccessWithStatus:[NSString stringWithFormat:@"%@",s]];}
//3秒消失 - info
#define SVProgressShowInfoWithStatus(s) {[SVProgressHUD setDefaultStyle:SVProgressHUDStyleCustom]; [SVProgressHUD setBackgroundColor:BarTintColor];[SVProgressHUD setForegroundColor:WHITE];[SVProgressHUD showInfoWithStatus:[NSString stringWithFormat:@"%@",s]];}
//不消失 - info
#define SVProgressShowInfo(s) {[SVProgressHUD setDefaultStyle:SVProgressHUDStyleCustom];[SVProgressHUD setBackgroundColor:BarTintColor];[SVProgressHUD setForegroundColor:[UIColor whiteColor]];[SVProgressHUD setDefaultMaskType:SVProgressHUDMaskTypeCustom];[SVProgressHUD setDefaultAnimationType:SVProgressHUDAnimationTypeNative];[SVProgressHUD showWithStatus:[NSString stringWithFormat:@"%@",s]];}
#define popNaiv [self.navigationController popViewControllerAnimated:YES];
#define BarTintColor [UIColor colorWithHexString:@"373b3e"]
#define localImg(img) [UIImage imageNamed:img]
/**
* 判断是否空
*/
static inline BOOL IsEmpty(id thing) {
return thing == nil || [thing isEqual:[NSNull null]]
|| ([thing respondsToSelector:@selector(length)]
&& [(NSData *)thing length] == 0)
|| ([thing respondsToSelector:@selector(count)]
&& [(NSArray *)thing count] == 0);
}