ios开发--常用宏定义(部分转)
1、release时,屏蔽log
- #if defined (DEBUG) && DEBUG == 1
 - #else
 - #define NSLog(...) {};
 - #endif
 
#if defined (DEBUG) && DEBUG == 1 #else
#define NSLog(...) {};
#endif
2、在主线程或在后台执行block
- #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 BACK(block) dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), block)
#define MAIN(block) dispatch_async(dispatch_get_main_queue(),block)
3、设备相关
- #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)
 - #define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion])
 - #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
 
#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) #define CurrentSystemVersion ([[UIDevice currentDevice] systemVersion]) #define CurrentLanguage ([[NSLocale preferredLanguages] objectAtIndex:0])
4、区分模拟器和真机
- #if TARGET_OS_IPHONE
 - //iPhone Device
 - #endif
 - #if TARGET_IPHONE_SIMULATOR
 - //iPhone Simulator
 - #endif
 
#if TARGET_OS_IPHONE
//iPhone Device
#endif #if TARGET_IPHONE_SIMULATOR
//iPhone Simulator
#endif
5、根据是否使用ARC做不同操作
- #if __has_feature(objc_arc)
 - //compiling with ARC
 - #else
 - // compiling without ARC
 - #endif
 
ios开发--常用宏定义(部分转)的更多相关文章
- IOS开发常用宏定义
		
//release屏蔽NSLog//放在.pch文件里#ifdef DEBUG #else#define NSLog(...) {};#endif //G.C.D#define BACK(block) ...
 - iOS开发——常用宏的定义
		
有些时候,我们需要将代码简洁化,这样便于读代码.我们可以将一些不变的东东抽取出来,将变化的东西作为参数.定义为宏,这样在写的时候就简单多了. 下面例举了一些常用的宏定义和大家分享: 1. 判断设备的操 ...
 - iOS开发笔记--宏定义的黑魔法 - 宏菜鸟起飞手册
		
宏定义在C系开发中可以说占有举足轻重的作用.底层框架自不必说,为了编译优化和方便,以及跨平台能力,宏被大量使用,可以说底层开发离开define将寸步难行.而在更高层级进行开发时,我们会将更多的重心放在 ...
 - iOS开发之--宏定义与const的区别及使用方法
		
宏定义的常见用法: 定义一段代码,或指定字符串抽成宏. const(常量): 当有字符串常量的时候,苹果推荐我们使用const,苹果经常把常用的字符串定义成const 宏定义与const的区别: 编译 ...
 - iOS 开发常用宏
		
来源:iOS_小松哥 链接:http://www.jianshu.com/p/be00c3f3cafd 大家都是知道使用宏不仅方便,而且可以提高开发效率.下面总结了iOS开发过程中的一些常用宏,会持续 ...
 - iOS之常用宏定义
		
下面我为大家提供一些常用的宏定义! 将这些宏定义 加入到.pch使用 再也不用 用一次写一次这么长的程序了 //-------------------获取设备大小------------------- ...
 - Object-C开发常用宏定义
		
Object-C开发中宏会将经常用到的系统常量进行封装,方便使用: 1.获取通知中心 #define EYNotificationCenter(name, object, userInfo) [[NS ...
 - ios 日常开发常用宏定义
		
#pragma mark - 字体.颜色相关 #define kFONT_SIZE(f) [UIFont systemFontOfSize:(f)] #define kFONT_BOLD_SIZE ...
 - 李洪强iOS开发之宏定义方法来初始化一个单例对象
		
单例的使用: .m 为了方便实用,只要将以下代码定义在header文件或者.pch文件即可: // .h #define singleton_interface(class) + (instancet ...
 
随机推荐
- 利用DataTable快速批量导数据
			
DataSet ds = new DataSet(); using (SqlConnection conn = new SqlConnection(@"data sou ...
 - android大项目运行中出现问题汇总
			
Android 项目中,特别是当项目文件和规模达到一定的程度后,会引发一些平常不常见的问题. 下面对遇到的一些问题做一个汇总和总结. scenario 1: 在项目中,我们采用了chromimum内核 ...
 - 两个正在运行的activity之间的通信
			
在android应用程序开发的时候,从一个activity启动另一个activity并传递一些数据到新的activity非常的简单,但是当您需要让后台运行的activity回到前台并传递一些数据可能就 ...
 - Android开发如何去除标题栏title
			
虽然是一个小问题,今天遇到了,也就写下来吧.防止自己忘掉. 取消标题栏的方式有两种,一种是在代码添加,另一种是在AndroidManifest.xml里面添加. 1.在代码中实现:在此方法setCon ...
 - Android控件大全(一)——DialogFragment创建对话框
			
DialogFragment在android 3.0时被引入.是一种特殊的Fragment,用于在Activity的内容之上展示一个模态的对话框.典型的用于:展示警告框,输入框,确认框等等. 在Dia ...
 - coffeeScript 语法总结
			
CoffeeScript ---->安装node.js ---->安装coffeeScript 语句: 注意:没有分号,语句由新的一行结束:多条语句写到同一行时需要分号表示一条语句的结束( ...
 - Recover deleted pictures in iOS 9
			
A case about business secret. The suspect is an engineer in Hitec company, and compeitiors pay lots ...
 - IP配置
			
1: #vi /etc/sysconfig/network-scripts/ifcfg-eth0 2: 实验环境-网络设置 公司域网: IP=162.168.16.0/24 netmask=255.2 ...
 - Linux ssh exit,启动的后台进程不会停止
			
一般情况下,想要通过终端长时间运行任务,需要使用nohup 或者 screen,如果不使用会怎么样呢?来测试一下 描述: 场景1:ssh登录机器,通过添加(&),启动任务到后台,通过exi ...
 - CentOS 5.X安装LAMP最高版本环境
			
#------------CentOS 5.X安装LAMP最高版本环境------------------#! /bin/sh #安装Apacheyum install httpd -y#1.关闭se ...