iOS开发常用宏
来源:互联网 发布:python 加减 编辑:程序博客网 时间:2024/05/17 02:46
大家都是知道使用宏不仅方便,而且可以提高开发效率。下面总结了iOS开发过程中的一些常用宏,会持续的往里面添加。
//字符串是否为空#define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO )//数组是否为空#define kArrayIsEmpty(array) (array == nil || [array isKindOfClass:[NSNull class]] || array.count == 0)//字典是否为空#define kDictIsEmpty(dic) (dic == nil || [dic isKindOfClass:[NSNull class]] || dic.allKeys == 0)//是否是空对象#define kObjectIsEmpty(_object) (_object == nil \|| [_object isKindOfClass:[NSNull class]] \|| ([_object respondsToSelector:@selector(length)] && [(NSData *)_object length] == 0) \|| ([_object respondsToSelector:@selector(count)] && [(NSArray *)_object count] == 0))//获取屏幕宽度与高度#define kScreenWidth \([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.width)#define kScreenHeight \([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? [UIScreen mainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale : [UIScreen mainScreen].bounds.size.height)#define kScreenSize \([[UIScreen mainScreen] respondsToSelector:@selector(nativeBounds)] ? CGSizeMake([UIScreen mainScreen].nativeBounds.size.width/[UIScreen mainScreen].nativeScale,[UIScreen mainScreen].nativeBounds.size.height/[UIScreen mainScreen].nativeScale) : [UIScreen mainScreen].bounds.size)//一些缩写#define kApplication [UIApplication sharedApplication]#define kKeyWindow [UIApplication sharedApplication].keyWindow#define kAppDelegate [UIApplication sharedApplication].delegate#define kUserDefaults [NSUserDefaults standardUserDefaults]#define kNotificationCenter [NSNotificationCenter defaultCenter]//APP版本号#define kAppVersion [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]//系统版本号#define kSystemVersion [[UIDevice currentDevice] systemVersion]//获取当前语言#define kCurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])//判断是否为iPhone#define kISiPhone (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)//判断是否为iPad#define kISiPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)//获取沙盒Document路径#define kDocumentPath [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject]//获取沙盒temp路径#define kTempPath NSTemporaryDirectory()//获取沙盒Cache路径#define kCachePath [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) firstObject]//判断是真机还是模拟器#if TARGET_OS_IPHONE//真机#endif#if TARGET_IPHONE_SIMULATOR//模拟器#endif//开发的时候打印,但是发布的时候不打印的NSLog#ifdef DEBUG#define NSLog(...) NSLog(@"%s 第%d行 \n %@\n\n",__func__,__LINE__,[NSString stringWithFormat:__VA_ARGS__])#else#define NSLog(...)#endif//颜色#define kRGBColor(r, g, b) [UIColor colorWithRed:(r)/255.0 green:(g)/255.0 blue:(b)/255.0 alpha:1.0]#define kRGBAColor(r, g, b, a) [UIColor colorWithRed:(r)/255.0 green:(r)/255.0 blue:(r)/255.0 alpha:a]#define kRandomColor KRGBColor(arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0,arc4random_uniform(256)/255.0)#define kColorWithHex(rgbValue) \[UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \green:((float)((rgbValue & 0xFF00) >> 8)) / 255.0 \blue:((float)(rgbValue & 0xFF)) / 255.0 alpha:1.0]//弱引用/强引用#define kWeakSelf(type) __weak typeof(type) weak##type = type;#define kStrongSelf(type) __strong typeof(type) type = weak##type;//由角度转换弧度#define kDegreesToRadian(x) (M_PI * (x) / 180.0)//由弧度转换角度#define kRadianToDegrees(radian) (radian * 180.0) / (M_PI)//获取一段时间间隔#define kStartTime CFAbsoluteTime start = CFAbsoluteTimeGetCurrent();#define kEndTime NSLog(@"Time: %f", CFAbsoluteTimeGetCurrent() - start)
文/iOS_啼血无痕(简书作者)
原文链接:http://www.jianshu.com/p/be00c3f3cafd
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
原文链接:http://www.jianshu.com/p/be00c3f3cafd
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
0 0
- iOS开发常用宏
- iOS开发常用宏
- ios开发常用宏
- iOS开发常用宏
- iOS 开发常用宏
- ios开发常用宏
- iOS-开发常用宏
- 【iOS开发】常用宏
- iOS开发常用宏
- IOS开发常用宏
- iOS 开发常用宏
- iOS开发常用宏
- iOS开发常用的宏
- ios开发常用的宏
- iOS开发常用的宏
- iOS开发常用的宏
- iOS开发常用的宏
- ios开发常用的宏
- JavaScript之表达式和运算符
- (二)C++中的数据类型和初始化方式
- Caffe入门(2)——Blob,Net库测试
- flask框架的参数传递以及MVC模式的图解
- oracle 手工卸载
- iOS开发常用宏
- 字符串 和 数组 的长用操作
- UIGesture 手势
- 2016/9/1 2 Maximum Continuous Product
- Android平台防止SQL注入
- 题目
- 【BLE-CC2640】CC2640之配对与绑定
- 获取form表单的值并转化为字符串、JSONArray或JSONObject的方法及form取不到值的解决办法
- 洛谷 P1220 关路灯 [dfs做法]