美文网首页iOS Developer
【进阶篇】iOS常用的OC宏定义

【进阶篇】iOS常用的OC宏定义

作者: methodname | 来源:发表于2016-11-25 11:52 被阅读0次

整理一下开发中常用的宏定义,正所谓工欲善其事必先利其器,没有一些方便好用的东西,就能让编码变得更加高效~~~


<pre><code class="hljs">
//获取屏幕 宽度、高度

define DV_W ([UIScreen mainScreen].bounds.size.width)

define DV_H ([UIScreen mainScreen].bounds.size.height)

//获取系统版本

define IOS_VERSION [[[UIDevice currentDevice] systemVersion] floatValue]

define CurrentSystemVersion [[UIDevice currentDevice] systemVersion]

//获取当前语言

define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])

//判断是否 Retina屏、设备是否%fhone 5、是否是iPad

define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)

define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)

define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

//判断设备的操做系统是不是ios7

define IOS7 ([[[UIDevice currentDevice].systemVersion doubleValue] >= 7.0]

//判断设备的操做系统是不是ios8

define IOS8 ([[[UIDevice currentDevice].systemVersion doubleValue] >= 8.0]

//判断设备的操做系统是不是ios9

define IOS9 ([[[UIDevice currentDevice].systemVersion doubleValue] >= 9.0]

//判断当前设备是不是iPhone4或者4s

define IPHONE4S (([[UIScreen mainScreen] bounds].size.height)==480)

//判断当前设备是不是iPhone5

define IPHONE5 (([[UIScreen mainScreen] bounds].size.height)==568)

//判断当前设备是不是iPhone6

define IPHONE6 (([[UIScreen mainScreen] bounds].size.height)==667)

//判断当前设备是不是iPhone6Plus

define IPHONE6_PLUS (([[UIScreen mainScreen] bounds].size.height)>=736)

//获取当前屏幕的高度

define kMainScreenHeight ([UIScreen mainScreen].applicationFrame.size.height)

//获取当前屏幕的宽度

define kMainScreenWidth ([UIScreen mainScreen].applicationFrame.size.width)

//判断是真机还是模拟器

if TARGET_OS_IPHONE

//iPhone Device

endif

if TARGET_IPHONE_SIMULATOR

//iPhone Simulator

endif

//带有RGBA的颜色设置

define COLOR(R, G, B, A) [UIColor colorWithRed:R/255.0 green:G/255.0 blue:B/255.0 alpha:A]

// 获取RGB颜色

define RGBA(r,g,b,a) [UIColor colorWithRed:r/255.0f green:g/255.0f blue:b/255.0f alpha:a]

define RGB(r,g,b) RGBA(r,g,b,1.0f)

define THE_THEME_COLORA(a) RGBA(6,187,106,a)

//方正黑体简体字体定义

define FONT(F) [UIFont fontWithName:@"FZHTJW--GB1-0" size:F]

//G-C-D

define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)

define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)

//由角度获取弧度 有弧度获取角度

define degreesToRadian(x) (M_PI * (x) / 180.0)

define radianToDegrees(radian) (radian*180.0)/(M_PI)

//打印当前方法的名称

define ITTDPRINTMETHODNAME() ITTDPRINT(@"%s", PRETTY_FUNCTION)

</code>

再来个GCD的

<code class='hljs'>
//G-C-D

define BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)

//G-C-D主线程

define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)

//延迟GCD时间

define DisTime(time) dispatch_time(DISPATCH_TIME_NOW, time * NSEC_PER_SEC)

//延迟GCD

define DisBACK(disTime,block) dispatch_after(disTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^(void){dispatch_async(dispatch_get_main_queue(), block);});

</code>
延迟时间的用法如下
<code class='hljs'>
 //GCD延迟0.5秒执行执行
    DisBACK(DisTime(0.5f),^
    {
        //这里的代码延迟在主线程中执行
    });

</code>

引用楼下大神的回复再加一段:
<code class='hljs'>
#ifdef DEBUG

#define HLog(...) NSLog(__VA_ARGS__)

#else

#define HLog(...)

#endif

用16进制的方式获取颜色:

//RGB Color macro

#define UIColorFromRGB(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]

//RGB color macro with alpha

#define UIColorFromRGBWithAlpha(rgbValue,a) [UIColor \

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

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

blue:((float)(rgbValue & 0xFF))/255.0 alpha:a]
</code>
</pre>

>是不是感觉有了这些东西后,效率变得更高了~~~

相关文章

  • 【进阶篇】iOS常用的OC宏定义

    整理一下开发中常用的宏定义,正所谓工欲善其事必先利其器,没有一些方便好用的东西,就能让编码变得更加高效~~~ //...

  • iOS开发常用宏定义

    iOS 日常工作之常用宏定义大全iOS-OC中常见的一些宏YYCategories 目录 1、长、宽、高2、判断设...

  • iOS OC中常用的宏定义

    1.通用的宏定义 #ifndef define_h #define define_h 2.获取系统对象 #defi...

  • OC常用宏定义

    测试输出 Log 屏幕相关 系统相关 定义弱引用、强引用 定义警告宏 颜色宏 其他宏

  • OC常用的宏定义

  • iOS常用宏定义

    打印日志的几种写法 推荐文章iOS 日常工作之常用宏定义大全iOS常用宏定义 结束语 到这里就结束了,如若不懂的话...

  • iOS OC宏定义

    APP本版号 系统版本号 判断是真机还是模拟器 屏幕尺寸 沙盒Cache路径 Debug模式打印 弱引用/强引用 ...

  • swift&&OC

    宏定义 OC中的宏定义 swift中的宏定义 OC中宏定义的方式,在swift中是不可用的,在swift中,宏定义...

  • iOS-常用宏定义

    [转自:iOS常用宏定义][http://www.cocoachina.com/ios/20161207/1831...

  • iOS 常用宏定义

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

网友评论

    本文标题:【进阶篇】iOS常用的OC宏定义

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