iOS 预编译命令小记

男娘i 2022-08-21 00:14 238阅读 0赞

前言

我们在写代码的时候往往会使用一些预编译,这样会方便我们功能代码的编写。这是我在工作中所使用的预编译的命令,分享出来给大家。

中心

  1. //定义常量
  2. //导航栏高度
  3. #define kNaivgationBarHeight 44
  4. //屏幕宽高
  5. #define KSCREEN_WIDTH [UIScreen mainScreen].bounds.size.width
  6. #define KSCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
  7. //内存管理安全释放对象
  8. #define SAFE_RELEASE(x) [x release];x=nil
  9. //判断系统的版本
  10. #define kCurrentSystemVersion [[[UIDevice currentDevice] systemVersion] floatValue]
  11. //判断是否是ios7或者更高的版本
  12. #define IOS_VERSION_7_OR_LATER (([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0)? (YES):(NO))
  13. //当前系统的语言
  14. #define kCurrentLanguage [[NSLocale preferredLanguages] objectAtIndex : 0]
  15. //定义更高级的DLog
  16. //#define DEBUG_MODE 1
  17. #ifdef DEBUG
  18. #define YF_Log(s,...) NSLog (@"<%p %@:(%d)> %@",self,[[NSString stringWithUTF8String:__FILE__] lastPathComponent],__LINE__,[NSString stringWithFormat:(s),##__VA_ARGS__])
  19. #else
  20. #define YF_Log(s,...)
  21. #endif
  22. //判断是不是真机
  23. #if TARGET_OS_IPHONE
  24. //操作
  25. #elif TARGET_IPHONE_SIMULATOR
  26. //操作
  27. #endif

说到这我再多说几句,平时我们的调试很多都是用NSLog进行输出查看结果。但是我们不要只会运行简单的输出参数这一点。

  1. NSLog(@"这是哪个方法运行的--%s",__func__);
  2. NSLog(@"这句代码在哪一行--%d",__LINE__);
  3. NSLog(@"这个文件所在的位置--%s",__FILE__);

输出结果:

  1. 2016-03-07 13:56:02.993 预编译[4297:235750] 这是哪个方法运行的---[ViewController viewDidLoad]
  2. 2016-03-07 13:56:02.993 预编译[4297:235750] 这句代码在哪一行--23
  3. 2016-03-07 13:56:02.993 预编译[4297:235750] 这个文件所在的位置--/Users/syf/Desktop/MyText/È¢ÑÁºñËØë/È¢ÑÁºñËØë/ViewController.m

这样你会有更好的输出结果。

如果你想在调试这一方面有个提高,你可以去看看LLDB,在我们的控制台去做各种操作。很适合装xx,但是很实用的呀。

发表评论

表情:
评论列表 (有 0 条评论,238人围观)

还没有评论,来说两句吧...

相关阅读

    相关 编译

    宏定义中的\运算符把跟在其后的参数转换成一个字符串称为字符串化运算符。 宏定义中的\\运算符把出现在\\两侧的参数合并成一个符号。 转载于:https://www.cnbl

    相关 iOS 编译命令小记

    前言 我们在写代码的时候往往会使用一些预编译,这样会方便我们功能代码的编写。这是我在工作中所使用的预编译的命令,分享出来给大家。 中心 //定义常量

    相关 iOS中的编译指令的初步探究

    开篇 我们人类创造东西的时候有个词叫做”仿生学“!人类创造什么东西都会模仿自己来创造,所以上帝没有长成树的样子而和人长得一样,科幻片里面外星人也像人一样有眼睛有鼻子……但

    相关 编译

    1.js运行三部曲 1. 语法分析 2. 预编译(发生在函数执行的前一刻) 3. 解释执行 预编译前奏 //函数声明整体提升 //变量    声明提升 1

    相关 ios开发小记

    今天ios遇到一个bug, UITableView的contentOffset会在内容不满一页的时候被reset, 其他时候正常, 而且这个bug只在有tabbar的地方出现,