IOS开发入门之iOS 常用宏定义
凌雪 2018-11-09 来源 :网络 阅读 788 评论 0

摘要:本文将带你了解IOS开发入门iOS 常用宏定义,希望本文对大家学IOS有所帮助。

本文将带你了解IOS开发入门iOS 常用宏定义,希望本文对大家学IOS有所帮助。


       

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),arc4random_uniform(256),arc4random_uniform(256))

#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频道!

本文由 @凌雪 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程