iOS 宏条件编译】的更多相关文章

在工程的 build settings 中的 preprocessor macros 下, debug: DEBUG=1 TestApi=1 #if !defined (TestApi) config.baseUrl = @"https://121.42.156.51/"; config.serverIP = @"https://121.42.156.51"; config.serverPort = nil; #else config.baseUrl = @&quo…
本文目录 iOS宏的经典用法 Apple的习惯 __attribute__ iOS宏的经典用法 1.常量宏.表达式宏 #define kTabBarH (49.0f) #define kScreenH [UIScreen mainScreen].bounds.size.height #define isScreenWidthEqual320 (fabs([UIScreen mainScreen].bounds.size.width - 320) < DBL_EPSILON) 2.带参数的宏 //…
ios宏定义字符串 #define objcString(str) @""#str"" 使用效果: objcString(字符串)…
宏简介: 宏是一种批量处理的称谓.一般说来,宏是一种规则或模式,或称语法替换 ,用于说明某一特定输入(通常是字符串)如何根据预定义的规则转换成对应的输出(通常也是字符串).这种替换在预编译时进行,称作宏展开.编译器会在编译前扫描代码,如果遇到我们已经定义好的宏那么就会进行代码替换,宏只会在内存中copy一份,然后全局替换,宏一般分为对象宏和函数宏(下面会详细介绍). 宏的弊端: 如果代码中大量的使用宏会是的编译时间变长. 对象宏: 像这样:#define M_PI 3.1415926535897…
宏定义在很多方面都会使用,例如定义高度.判断iOS系统.工具类,还有诸如文件路径.服务端api接口文档.为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中 定义尺寸类的宏 DimensMacros.h //状态栏高度 #define STATUS_BAR_HEIGHT 20 //NavBar高度 #define NAVIGATION_BAR_HEIGHT 44 //状态栏 + 导航栏 高度 #define STATUS_AND_NAVIGATION_HEIGHT ((S…
当需要判断iOS系统版本的时候,相信很多人都会这么干: #define SystemVersion [[UIDevice currentDevice] systemVersion].floatValue 现在告诉屌丝们一个更好的办法就是其实系统已经做了类似的宏定义,不需要我们再去定义了 在Simulator-IOS7.0/usr/include/Availability.h中已经定义了很多系统的宏: 然后使用: #ifdef __IPHONE_7_0  //iOS7的新特性代码#endif 或者…
在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰 你能区分下面的吗?知道什么时候用吗? #define HSCoder @"汉斯哈哈哈" NSString *HSCoder = @"汉斯哈哈哈"; extern NSString *HSCoder; extern const NSString *HSCoder; static const NSString *HSCoder = @"…
1.__OBJC__宏定义作用 在.pch 文件中一般都会自动加上这句宏定义,表示宏内引用的文件确保只被使用Objective-C语言的文件所引用,保证引用关系的清晰.因为在一个OC工程中,可能包含.m..mm..c..cpp四类编译文件,这四类文件均会引用.pch预编译头.在编译.c..cpp时,因为语法不兼容OC,所以预编译头中不能包含objc代码.因为.pch是2类源文件共用的,所以在pch中,oc头文件要用__OBJC__包含起来. 2.下面是一些常用于打印日志的宏. 宏 说明 __fu…
iOS开发过程中使用一些常用的宏可以提高开发效率,提高代码的重用性:将这些宏放到一个头文件里然后再放到工程中的-Prefix.pch文件中(或者直接放到-Prefix.pch中)直接可以使用,灰常方便. 本文整理自http://www.cocoachina.com/applenews/devnews/2013/0328/5907.html . 做了一些分类和注释,可以根据自己习惯再添加或者删除或者修改这些宏进行使用. // //  MacroDefinition.h //  MacroDefin…
原文网址:http://www.jianshu.com/p/f83335e036b5 在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰 你能区分下面的吗?知道什么时候用吗? #define HSCoder @"汉斯哈哈哈" NSString *HSCoder = @"汉斯哈哈哈"; extern NSString *HSCoder; extern const NSString *HSCod…
宏定义在很多方面都会使用,例如定义高度.判断iOS系统.工具类,还有诸如文件路径.服务端api接口文档.为了对宏能够快速定位和了解其功能,我们最好在定义的时候将其放入特定的头文件中,下面我抛砖引玉,对一些常用的宏进行分类.分文件定义,希望对大家有所帮助. 定义尺寸类的宏 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 DimensMacros.h //状态栏高度…
概述 在iOS开发中,经常用到宏定义,或用const修饰一些数据类型,经常有开发者不知怎么正确使用,导致项目中乱用宏与const修饰.你能区分下面的吗?知道什么时候用吗? #define HSCoder @"汉斯哈哈哈" NSString *HSCoder = @"汉斯哈哈哈"; extern NSString *HSCoder; extern const NSString *HSCoder; static const NSString *HSCoder = @&q…
// 直接从RGB取颜色(RGB 0xFF00FF)#define UICOLOR_FROM_RGB(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] //获取当…
项目为了看起来整洁 并减少不必要的多次拼写 我们会把这样的方法 做成宏定义 那么问题来了 很多文件同时用到一个或多个宏定义 写完之后就会变成这个样子 看起来很乱 阅读性也不好 那么问题来了怎么解决嘞 我要发功了 把所有的宏定义都写入一个文件 然后那个用到宏定义 直接导入TRMacro就可以了 是不是很吊 虽然很基础 但是很实用…
有时候是不是因为频繁地创建一个单例对象而头疼,一种方式要写好多遍?当然你可以用OC语言进行封装.但下面将介绍一种由C语言进行的封装.只要实现下面的方法,以后建单例对象只要二句话. 1.新建一个.h文件,在文件中实现以下方法: / .h #define singleton_interface(class) + (instancetype)shared##class; // .m #define singleton_implementation(class) \ static class *_ins…
// 十六进制颜色 #define COLOR_WITH_HEX(hexValue) [UIColor colorWithRed:((float)((hexValue & 0xFF0000) >> 16)) / 255.0 green:((float)((hexValue & 0xFF00) >> 8)) / 255.0 blue:((float)(hexValue & 0xFF)) / 255.0 alpha:1.0f] // 调用 UIColor *re…
1.System Versioning Preprocessor Macros #define SYSTEM_VERSION_EQUAL_TO(v) ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame) #define SYSTEM_VERSION_GREATER_THAN(v) ([[[UIDevice currentDevice] systemVersio…
代码适配Masonry使用的详细介绍: http://blog.csdn.net/majiakun1/article/details/51160339 Masonry使用注意篇: http://www.cnblogs.com/wqcoder/p/5511434.html iOS 宏(define)与常量(const)的正确使用: http://www.jianshu.com/p/f83335e036b5 UICollectionView(一)--整体总结: http://www.jianshu.…
1.基本概念 条件编译的行为类似于C语言中的if…else… 条件编译是预编译指示命令,用于控制是否编译某段代码 2.实例分析 条件编译初探     22-1.c #include <stdio.h>      #define C 1      int main()   {       const char* s;          #if( C == 1 )           s = "This is first printf...\n";       #else  …
位运算 // 按位与&: 2 & 3 = 2: 010 & 011 = 010   两个1才为1 // 按位或|: 2 | 3 = 3: 010 | 011 = 011   只要1个为1则为1 // 按拉异或: 2 ^ 3 = 1;  010 | 011 = 001   不同则为1   // 结合律:(a & b) & c = a & (b & c) // 交换律: a & b  = b & a   /****************…
专题三: 1)       预编译 处理所有的注释,以空格代替, 将所有的#define删除,并且展开所有的宏定义, 处理条件编译指令#if,#ifdef,#elif,#else,#endif 处理#include,展开呗包含的文件, 保留编译器需要使用的#pragma指令, 预处理指令:gcc-E file.c –o hello.i 编译: 对于处理文件进行一系列词法分析,语法分析和语义分析 语法分析主要分析关键字,表示符,立即数是否合法,语法分析主要分析表达式是否遵循语法规则 语义分析子啊语…
FileZilla Server源码分析(1) 分类: VC 2012-03-27 17:32 2363人阅读 评论(0) 收藏 举报 serversocketftp服务器usersockets工作 之所以有本系列的分析,是因为两点: FileZilla 是目前非常火爆的开源ftp项目,整个项目采用C++代码编写,代码紧凑可读性高,值得学习(缺陷是注释太少). 网络上已有的对该源码的分析基于的版本是0.9.18,分析比较粗略,无论是框架还是细节. 这里仅仅是我个人对FileZilla Serve…
Qt for Android Qt for Android enables you to run Qt 5 applications Android devices. All Qt modules (essential and add-on) are supported except Qt WebEngine, Qt Serial Port, and the platform-specific ones (Qt Mac Extras, Qt Windows Extras, and Qt X11…
#include<stdio.h> #define LOCAL //无参宏 //条件编译 #ifdef LOCAL int a=1; #else int a=2; #endif #ifndef LOCAL int b=1; #else int b=2; #endif #define PI 3.1415926535 //有参宏 #define max_wrong(a,b) a>b?a:b #define max(a,b) ((a)>(b)?(a):(b)) #define maxwe…
#import "XMGTool.h" /** * 1:ARC下的完整的单例写法:alloc内部会调用+(instancetype)allocWithZone:(struct _NSZone *)zone方法,所以重写该方法,用GCD一次性函数,默认是线程安全的加了一把锁,也可以自己去加锁 @synchronized(self) { if (_instance == nil) { _instance = [super allocWithZone:zone]; } } 2:还要考虑cop…
转自:http://www.jianshu.com/p/213b3b96cafe 前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了怎么办?本人在工作中也是如此.所以在这里给大家分享一些常用的宏定义,喜欢的小伙伴可以直接在项目中使用(持续更新)!为了大家使用方便,请点击GitHub - 宏定义头文件下载 ! 1.获取屏幕宽度与高度 #define SCREEN_WIDTH [UIScreen mainScreen].bounds…
NSLog(@"__func__ :  %s", __func__);//oc测试环境,打印文件名,方法名 NSLog(@"__FUNCTION__ : %s", __FUNCTION__);//同上 NSLog(@"__PRETTY_FUNCTION__ : %s", __PRETTY_FUNCTION__);//同上 NSLog(@"__FILE__ : %s", __FILE__);//打印文件路径 NSLog(@&qu…
总结了iOS开发过程中的一些常用宏,以后会陆陆续续添加进来. 字符串是否为空 1   #define kStringIsEmpty(str) ([str isKindOfClass:[NSNull class]] || str == nil || [str length] < 1 ? YES : NO ) 数组是否为空 1   #define kArrayIsEmpty(array) (array == nil || [array isKindOfClass:[NSNull class]] ||…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAnoAAAPCCAYAAADvRHWgAAAAAXNSR0IArs4c6QAAAZ1pVFh0WE1MOm…
前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了怎么办?本人在工作中也是如此.所以在这里给大家分享一些常用的宏定义,喜欢的小伙伴可以直接在项目中使用(持续更新)! 为了大家使用方便,请点击:GitHub - 宏定义头文件下载 1.获取屏幕宽度与高度 1 2 #define SCREEN_WIDTH   [UIScreen mainScreen].bounds.size.width #define SCREENH_HEIGHT …