ios 开发 宏定义 在哪个文件定义
发布网友
发布时间:2022-04-23 18:53
我来回答
共1个回答
热心网友
时间:2023-10-13 18:53
系统宏汇集
__FILE__
当前文件所在目录
__DATE__
“替代文字”是一个含有编译日期的字符串字面值,日期格式为“mm dd yyyy”(例如:“Mar 19 2006”)。如果日期小于10日,就在日的前面放一个空格符。NSLog(@"_DATE_=%s",__DATE__);
__FUNCTION__
当前函数名称
__LINE__
当前语句在源文件中的行数
__TIME__
此字符串字面值包含编译时间,格式为“hh:mm:ss”(范例:“08:00:59”)。
__STDC__
整数常量1,表示此编译器遵循ISOC标准。
__STDC_VERSION__
如何实现复合C89整部1,则这个宏的值为19940SL;如果实现符合C99,则这个宏的值为199901L;否则数值是未定义
__STDC_EOBTED__
(C99)实现为宿主实现时为1,实现为独立实现为0
__STDC_IEC_559__
(C99)浮点数实现复合IBC 60559标准时定义为1,否者数值是未定义
__STDC_IEC_559_COMPLEX__
(C99)复数运算实现复合IBC 60559标准时定义为1,否者数值是未定义
__STDC_ISO_10646__
(C99)定义为长整型常量,yyyymmL表示wchar_t值复合ISO 10646标准及其指定年月的修订补充,否则数值未定义
1、release时,屏蔽log
C代码
#if defined (DEBUG) && DEBUG == 1
#else
#define NSLog(...) {};
#endif
2、在主线程或在后台执行block
C代码
#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、设备相关
C代码
#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、区分模拟器和真机
C代码
#if TARGET_OS_IPHONE
//iPhone Device
#endif
#if TARGET_IPHONE_SIMULATOR
//iPhone Simulator
#endif
5、根据是否使用ARC做不同操作
C代码
#if __has_feature(objc_arc)
//compiling with ARC
#else
// compiling without ARC
#endif
iOS由多个宏文件时,怎样设置PCH文件的相对路径
1、个人对PCH 的理解:PCH 文件是针对一些宏定义的,常用的变量的定义或常用到的类,只要在PCH 中定义的变量,在整个工程中都可以使用,如果多个类需要导入很多类,我们可以在PCH文件中导入需要导入的类,在使用的类里面导入pch头文件就可以了 2、在工程中新建一个PCH 文件:New File ->Other ->PCH ...
IOS 温习之路 ” Bundle “
3. 在“Strip Debug Symbols During Copy”和“Symbols Hidden by Default”选项中设置为“YES”。这将去除不必要的调试符号,减小文件体积,并将所有符号定义为“private extern”,进一步优化资源包的大小。4. 设置“iOS Deployment Target”为所支持的最低iPhone OS版本。同时,为了确保Bundle包中的图片...
uni-app 开发中的 #ifdef MP 是什么意思?
在 uni-app 开发中,#ifdef MP 是一个条件编译指令,用于在不同的平台上实现不同的功能。MP 可能是某个宏定义的名称,具体取决于你的代码和平台。例如,如果你在 iOS 平台上使用 uni-app,那么 #ifdef MP 可能会被替换为 #ifdef __APPLE__。这样做的目的是为了让你的代码在不同的平台上运行得...
iOS宏定义介绍
在了解宏定义的使用前,需要说明一下合理使用宏定义确实可以提高程序的可读性,但是滥用宏定义,也会带来一些害处。这里对宏定义使用的优缺点做个简单的说明:宏可以分为两类,一类称为对象宏,一类称为函数宏 对象宏可以定义一个量,如圆周率:通过宏可以拿到这个变量:打印结果:但是看一下另外一种情况...
ios怎样使用宏定义进行大小的判断
ios怎样使用宏定义进行大小的判断 50 搜索资料 我来答 分享 微信扫一扫 新浪微博 QQ空间 举报 浏览8 次 本地图片 图片链接 代码 提交回答 匿名 回答自动保存中为你推荐:特别推荐 为什么有了房子就有了幸福 多走路、多喝水……其实在折寿? 猫是"液体"做的吗,可以拉多长? 器官移植的出路究竟在何方?
ios 中 define 函数可以使用oc函数吗
这个用作宏定义,就是定义一些数据等等的 如 #define N100 //定义了 一个整数N=100 #define f 3.1415926 //定义了 一个浮点数f=3.1415926 还可以带参数的宏定义 如 #define f(x) x*x+1 函数里若是遇到N,f,f(x)时直接用后面定义的代替就是了 ...
iOS开发给第三方使用的SDK需要注意些什么,求指教
1.类名、宏定义、枚举、通知、类别等命名时加静态库统一特殊前缀,以避免命名冲突。2.类别中方法名也需要加特殊前缀,以避免方法覆盖导致不必要麻烦。3.对于项目中的c、c++中的方法,需要加前缀。4.对于开发静态库时引入的开源库,若体量过大,可外部引用,提供给接入方时加以说明,体量小的可以对类...
如何判断当前iOS设备
判断当前iOS设备代码如下:1.在程序中涉及到全屏的宽高的时候,初始化的时候,代码中不要写320和480 define Screen_height [[UIScreen mainScreen] bounds].size.height define Screen_width [[UIScreen mainScreen] bounds].size.width 2.使用宏定义方法判断:define iPhone5 ([UIScreen instances...
iOS获取设备IP地址(ipv4/ipv6有效性判断)
因此需要判断处理一下。例如下面这个:有的小伙伴把fe80开头的ipv6地址过滤掉,来获取当前连接的ipv6地址,这种方式也是可以的。1 引入头文件和宏定义 2 获取IP地址 3判断IP地址有效性 如果需要获取 USB有线连接、VPN等其他连接方式的IP地址,请参考 Stack Overflow这个文章 ...
iOS 与 watchOS通信
WatchConnectivity.h 没有实质的内容,里面包含了WatchConnectivity.framework中所有 interface 文件。 WCDefines.h 里面包含了一些宏定义,我们一般不用关注。 WCError.h 里面包含了一些错误信息的定义,我们在iPhone与Apple Watch 通信过程中报错...