#ifndef MacroDefinition_h

#define MacroDefinition_h

//-------------------获取设备大小-------------------------

//NavBar高度

#define NavigationBar_HEIGHT 44

//获取屏幕 宽度、高度

#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)

#define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height)

//-------------------获取设备大小-------------------------

//-------------------打印日志-------------------------

//DEBUG 模式下打印日志,当前行

#ifdef DEBUG

# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);

#else

# define DLog(...)

#endif

//重写NSLog,Debug模式下打印日志和当前行数

#if DEBUG

#define NSLog(FORMAT, ...) fprintf(stderr,"\nfunction:%s line:%d content:%s\n", __FUNCTION__, __LINE__, [NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]);

#else

#define NSLog(FORMAT, ...) nil

#endif

//DEBUG 模式下打印日志,当前行 并弹出一个警告

#ifdef DEBUG

# define ULog(fmt, ...) { UIAlertView *alert = [UIAlertView alloc] initWithTitle:[NSString stringWithFormat:@"%s\n [Line %d] ", __PRETTY_FUNCTION__, __LINE__] message:[NSString stringWithFormat:fmt, ##__VA_ARGS__] delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil]; [alert show]; }

#else

# define ULog(...)

#endif

//---------------------打印日志--------------------------

//----------------------系统----------------------------

// 是否iPad

#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

// 是否iPad

#define someThing (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)? ipad: iphone

//获取系统版本

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

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

#define kScreenIphone5 (([UIScreen mainScreen] bounds].size.height)>=568)

//获取当前屏幕的高度

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

//获取当前屏幕的宽度

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

//定义一个define函数

#define TT_RELEASE_CF_SAFELY(__REF) { if (nil != (__REF)) { CFRelease(__REF); __REF = nil; } }

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

#if TARGET_OS_IPHONE

//iPhone Device

#endif

#if TARGET_IPHONE_SIMULATOR

//iPhone Simulator

#endif

//检查系统版本

#define SYSTEM_VERSION_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)

#define SYSTEM_VERSION_GREATER_THAN(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)

#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)

#define SYSTEM_VERSION_LESS_THAN(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)

#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v) ([[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

//----------------------系统----------------------------

//----------------------内存----------------------------

//使用ARC和不使用ARC

#if __has_feature(objc_arc)

//compiling with ARC

#else

// compiling without ARC

#endif

#pragma mark - common functions

#define RELEASE_SAFELY(__POINTER) { [__POINTER release]; __POINTER = nil; }

//释放一个对象

#define SAFE_DELETE(P) if(P) { [P release], P = nil; }

#define SAFE_RELEASE(x) [x release];x=nil

//----------------------内存----------------------------

//----------------------图片----------------------------

//读取本地图片

#define LOADIMAGE(file,ext) [UIImage imageWithContentsOfFile:[NSBundle mainBundle]pathForResource:file ofType:ext]

//定义UIImage对象

#define IMAGE(A) [UIImage imageWithContentsOfFile:[NSBundle mainBundle] pathForResource:A ofType:nil]

//定义UIImage对象

#define ImageNamed(_pointer) [UIImage imageNamed:[UIUtil imageName:_pointer]

//建议使用前两种宏定义,性能高于后者

//----------------------图片----------------------------

//----------------------颜色类---------------------------

// rgb颜色转换(16进制->10进制)

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

//带有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 BACKGROUND_COLOR [UIColor colorWithRed:242.0/255.0 green:236.0/255.0 blue:231.0/255.0 alpha:1.0]

//清除背景色

#define CLEARCOLOR [UIColor clearColor]

#pragma mark - color functions

#define RGBCOLOR(r,g,b) [UIColor colorWithRed:(r)/255.0f green:(g)/255.0f blue:(b)/255.0f alpha:1]

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

//----------------------颜色类--------------------------

//----------------------其他----------------------------

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

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

//定义一个API

#define APIURL @"

"

//登录API

#define APILogin [APIURL stringByAppendingString:@"Login"]

//设置View的tag属性

#define VIEWWITHTAG(_OBJECT, _TAG) [_OBJECT viewWithTag : _TAG]

//程序的本地化,引用国际化的文件

#define MyLocal(x, ...) NSLocalizedString(x, nil)

//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)

//NSUserDefaults 实例化

#define USER_DEFAULT [NSUserDefaults standardUserDefaults]

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

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

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

//单例化一个类

#define SYNTHESIZE_SINGLETON_FOR_CLASS(classname) \

\

static classname *shared##classname = nil; \

\

+ (classname *)shared##classname \

{ \

@synchronized(self) \

{ \

if (shared##classname == nil) \

{ \

shared##classname = [self alloc] init]; \

} \

} \

\

return shared##classname; \

} \

\

+ (id)allocWithZone:(NSZone *)zone \

{ \

@synchronized(self) \

{ \

if (shared##classname == nil) \

{ \

shared##classname = [super allocWithZone:zone]; \

return shared##classname; \

} \

} \

\

return nil; \

} \

\

- (id)copyWithZone:(NSZone *)zone \

{ \

return self; \

}

#endif

ios android 宏,iOS常用宏定义相关推荐

  1. C语言宏定义、宏函数、内置宏与常用宏

    前言: 在C语言中,变量类型.循环控制.基础语法等与其他高级语言基本无异:而C语言(C++)特有的两把双刃剑指针和宏定义/宏函数使得C语言在底层开发中披荆斩棘.无所不能.这两个概念涉及范围比较广,其分 ...

  2. ios,android,塞班,iOS塞班给力 非Android热门手机搜罗

    手机型号:诺基亚N8 参考报价:3000元(水改机)4299元(行货) 推荐理由:诺基亚代表的塞班操作系统由原来的S60更新至今成为了塞班3,系统最出名就是操作方便,但是自从出了Android和苹果之 ...

  3. android相比ios,Android相比iOS还差在哪里

    Android相比iOS还差在哪里 2016-04-29 搞机嚒1评 随着科技的发展安卓和IOS的长期演化系统越来越同质化的今天安卓相对于苹果依然很差(至少在一些人眼中)那么为什么会出现这种情况呢?下 ...

  4. 官方文档 android ios,Android 和 IOS 办公文件 doc,docx,ppt pdf 文件查看

    更新记录 1.3.0(2021-04-09) 增加了 IOS 端的文件预览查看支持. 1.2.0(2020-07-01) 新增一个 android 系统文件分享的接口. 优化了打开文件时,有部分安卓机 ...

  5. iOS日常工作之常用宏定义大全

    前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了怎么办?本人在工作中也是如此.所以在这里给大家分享一些常用的宏定义,喜欢的小伙伴可 ...

  6. ios android体验,iOS 14终于解决这个痛点,但体验依然不如安卓

    将「雷科技Lite」收藏为我的小程序,不再错过精彩内容 截图几乎是所有智能设备都有的标配功能,手机厂商们还把这样简单的一个功能玩出了各种花样.WWDC过后,苹果推送的iOS 14预览版固件中,添加了一 ...

  7. C语言中的宏函数与宏定义

    目录 1.无参宏定义 1.1 无参数宏定义的格式: 1.2 使用说明: 2.带参宏定义 2.1 带参数宏定义的格式: 2.2 使用说明: 3.带参宏定义与函数调用的区别 4.头文件中常用的宏定义 5. ...

  8. iOS - 常用宏定义

    iOS中的常用宏定义 此篇博客为博主转载经典文章,非常感谢原创的优秀资源! 为方便常看和使用,在此我将原文中的宏定义在此以代码片形式展示出来,具体内容如下: #ifndef MacroDefiniti ...

  9. iOS - 常用宏定义和PCH文件知识点整理

    (一)PCH文件操作步骤演示: 第一步:图文所示: 第二步:图文所示: (二)常用宏定义整理: (1)常用Log日志宏(输出日志详细可定位某个类.某个函数.某一行) //=============== ...

  10. IOS基础使用PCH文件全局定义宏常量

    IOS基础使用PCH文件全局定义宏常量 在项目中新建一个PCH文件,文件名自己起 里面装入代码 #ifndef PrefixHeader_pch #define PrefixHeader_pch /* ...

最新文章

  1. C语言进阶剖析第三课--浮点数的秘密
  2. Linux shell 操作命令 mkdir
  3. sql入侵 mysql日志_服务器入侵日志分析(一)——mysql日志位置确定
  4. CVPR 2019 论文大盘点—文本图像相关篇
  5. I.MX6 android 获取framebuffer信息
  6. 手动安装MySQL8.0
  7. 查看本机外网IP地址
  8. sv信道模型是什么_信道模型(信道模型分类)
  9. LinkLab 链接
  10. 使用苹果账号登录你的应用
  11. ROI Align原理及cuda源码阅读
  12. 数据库--根据日期查询
  13. the sdk seems invalid pycharm
  14. 麦当劳如何吸引消费者走进店里
  15. Cocos2dx游戏开发素材/学习网站分享
  16. 机器学习面试题 (一)
  17. matlab 双峰,如何在MATLAB中区分双峰和单峰阵列?
  18. 圈排序——python
  19. 招商银行、伊利股份套利模型(1)
  20. 【STM32F429开发板用户手册】第42章 STM32F429的LTDC应用之点阵字体和字符编码(重要)

热门文章

  1. CarMaker中关于交通目标行人横穿的问题
  2. python下载的库包放_python下载的库包存放路径
  3. python安装哪个版本好啊_Python 的版本选择与安装细节
  4. 2022年深圳有哪些好玩的小镇古城推荐
  5. 软件方法上竞赛自测题答案
  6. 镭神智能C32 ROS Rviz使用教程
  7. 微信小程序学习资料[转]
  8. 中国铁塔行业市场企业投资及运营策略分析报告2022-2028年版
  9. C++ 输出Unicode字符的正确方法
  10. 攻击局域网计算机,如何攻击局域网电脑