美文网首页
技术分享 | iOS 开发常用宏

技术分享 | iOS 开发常用宏

作者: 大连中软卓越 | 来源:发表于2017-03-29 09:24 被阅读16次

www.dletc.com.cn

大家都知道使用宏不仅方便,而且可以提高开发效率。下面小卓君搜罗了一些iOS开发过程中的一些常用宏,希望能帮上正在IT路上努力的你们。

//字符串是否为空//

#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 \

||[_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)

//一些缩写

#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) \

[UIColorcolorWithRed:((float)((rgbValue&0xFF0000)>>16))/255.0\

green:((float)((rgbValue&0xFF00)>>8))/255.0\

blue:((float)(rgbValue&0xFF))/255.0alpha: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_小松哥

www.jianshu.com/p/be00c3f3cafd

咨询电话:0411-84977106

相关文章

  • 技术分享 | iOS 开发常用宏

    www.dletc.com.cn 大家都知道使用宏不仅方便,而且可以提高开发效率。下面小卓君搜罗了一些iOS开发过...

  • iOS开发中常用的宏

    以下为iOS开发中常用宏: 引用:ios开发常用的宏,大家一起来收集 参考:ios开发常用的宏,大家一起来收集~

  • iOS开发常用的工具类和宏定义

    iOS开发常用的工具类和宏定义 开发总结的工具类和宏 https://github.com/xiaoChen66...

  • iOS 常用宏定义

    iOS 开发中使用一些常用宏定义可以大大提高开发效率,提高代码的重用性.以下是一些常用的宏定义: 像这些宏定义,在...

  • 开发常用宏 - iOS

    开发中很多常用的方法会在很多地方被多次使用到,因此为了提升开发效率,特此将其配置为宏,从而使用起来更加得心应手,以...

  • iOS开发常用宏

    Debug与Release 自定义NSLog 屏幕宽度 颜色设置 沙盒路径

  • iOS开发常用宏

    设备 系统 设置Debug模式下打印log,release模式下不打印 颜色 字体大小(常规/粗体) 常用方法 单例

  • ios开发常用宏

    /** 屏幕宽度 */ #define eDeviceWidth [UIScreen mainScreen].bo...

  • iOS 开发常用宏

    引子: 今天一个前辈解决了我纠结了很久的问题,具体点说就是怎么在cell里面获取父视图的navigationCon...

  • iOS开发常用宏

    //字符串是否为空#define kStringIsEmpty(str) ([str isKindOfClass:...

网友评论

      本文标题:技术分享 | iOS 开发常用宏

      本文链接:https://www.haomeiwen.com/subject/uoceottx.html