//字符串是否為空
#define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO )
//數(shù)組是否為空
#define kArrayIsEmpty(array) (array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0)
//字典是否為空
#define kDictIsEmpty(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0)
//是否是空對(duì)象
#define kObjectIsEmpty(_object) (_object == nil \
||[_objectisKindOfClass:[NSNullclass]]\
||([_objectrespondsToSelector:@selector(length)]&&[(NSData*)_objectlength]==0)\
||([_objectrespondsToSelector:@selector(count)]&&[(NSArray*)_objectcount]==0))
//獲取屏幕寬度與高度
#define kScreenWidth \
([[UIScreenmainScreen]respondsToSelector:@selector(nativeBounds)]?[UIScreenmainScreen].nativeBounds.size.width/[UIScreenmainScreen].nativeScale:[UIScreenmainScreen].bounds.size.width)
#define kScreenHeight \
([[UIScreenmainScreen]respondsToSelector:@selector(nativeBounds)]?[UIScreenmainScreen].nativeBounds.size.height/[UIScreenmainScreen].nativeScale:[UIScreenmainScreen].bounds.size.height)
#define kScreenSize \
([[UIScreenmainScreen]respondsToSelector:@selector(nativeBounds)]?CGSizeMake([UIScreenmainScreen].nativeBounds.size.width/[UIScreenmainScreen].nativeScale,[UIScreenmainScreen].nativeBounds.size.height/[UIScreenmainScreen].nativeScale):[UIScreenmainScreen].bounds.size)
//開發(fā)的時(shí)候打印帆竹,但是發(fā)布的時(shí)候不打印的NSLog
#ifdef DEBUG
#define NSLog(...) NSLog(@"%s 第%d行 \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])
#else
#define NSLog(...)
#endif
//弱引用/強(qiáng)引用
#define kWeakSelf(type)?? __weak typeof(type) weak##type = type;
#define kStrongSelf(type) __strong typeof(type) type = weak##type;
//顏色
#define kRGBColor(r, g, b)???? [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]
#define kColorWithHex(rgbValue) \
[UIColorcolorWithRed:((float)((rgbValue&0xFF0000)>>16))/255.0\
green:((float)((rgbValue&0xFF00)>>8))/255.0\
blue:((float)(rgbValue&0xFF))/255.0alpha:1.0]
//獲取沙盒Document路徑
#define kDocumentPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]
//獲取沙盒temp路徑
#define kTempPath NSTemporaryDirectory()
//獲取沙盒Cache路徑
#define kCachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]