iosios 开发debuglog生产环境怎么debug

3626人阅读
iOS(转载)(179)
原帖链接:
首先确定下项目的 Build Settings 是否已经设置过宏定义 DEBUG,如何看呢?
点击 Build Settings ,然后在搜索框里输入‘macros’
如果已经设置过,在 Preprocessor Macros 的 Debug 后面会有 DEBUG=1,如果没有,就手动设置下。
接下来就可以这样做了
#ifdef DEBUG
一般Apple已经为我们设置好了 DEBUG 的宏定义,所以,我们只要让 NSLog 在 DEBUG 模式下失效就好了,这样能让我们的程序运行起来更加稳定,同时我们也可以继续使用正规的 NSLog。
//put this in prefix.pch
#ifndef DEBUG
#undef NSLog
#define NSLog(args, ...)
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:464622次
积分:5902
积分:5902
排名:第4528名
原创:83篇
转载:358篇
评论:49条
(1)(1)(3)(4)(8)(7)(9)(6)(4)(20)(20)(11)(14)(27)(21)(21)(7)(12)(16)(21)(4)(5)(9)(3)(9)(5)(15)(9)(9)(3)(13)(15)(26)(25)(49)(9)
(window.slotbydup = window.slotbydup || []).push({
id: '4740881',
container: s,
size: '200,200',
display: 'inlay-fix'在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。
简单的代码如下,
#if&defined(DEBUG)||defined(_DEBUG)
&&&&NSLog(@&测试代码&);
&&&&NSLog(@&Test&Coding&);
上面的#if #endif宏定义的意思就是如果定义了DEBUG,那么就使用NSLog输出;否则这段代码直接忽略。有人会疑问这个DEBUG和_DEBUG来自哪里,这个其实不用担心,这个来自于Xcode的默认设置,我们可以取消DEBUG模式,开启RELEASE发布模式,如下截图所示,
选择Product-&Scheme-&Edit Scheme,
下图可以选择Debug和Release两种模式,
这里我选择了Release,那么则默认没有定义Debug,则上面代码中#if...#endif之间的输出NSLog不会执行。这样就在发布程序的时候,节省了一些硬件设备的资源。
本文已收录于以下专栏:
相关文章推荐
使用 UITapGestureRecognizer   ,创建一个 UITapGestureRecognizer  将它添加到view上即可
   UIView ...
Xcode进行调试时候,经常看到debug和release,那么他们是什么呢?
debug是调试版本, release是发行版本,
Xcode里面,但凡有debug和release 设置的地方,就...
============================================================博文原创,转载请声明出处电子咖啡(原id蓝岩)=================...
原帖链接:/a/9063469
首先确定下项目的 Build Settings 是否已经设置过宏定义 DEBUG,如何看呢?
转自http://blog.csdn.net/mad1989/article/details/
1,Debug和Release版本区别?
众所周知,我们进行iOS开发,在Xco...
在以前的OC项目中我们经常用#if DEBUG来判断是否是在DEBUG模式下调试代码,然后最近我用swift写的项目中发现#if DEBUG判断居然步管用了,多方查证为果的情况下终于找到了解决方案,希...
简单介绍以下几个宏:
1) __VA_ARGS__ 是一个可变参数的宏,这个可变参数的宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参...
Swift中Debug和Release两种状态下print()函数调试切换
在编写项目的过程中,我们常常会打印信息到控制台,通过打印的信息来判断代码的流程或者正确性。但是这些信息仅仅在Debug的状态...
在APP 开发中,有时需要做一些模拟数据, 这时候,就得设置一个 Debug 开关, 当发布时,再把这个 Debug 关掉。
具体应用如下:..
打开DEBUG 模式: DE...
不管在什么平台上软件都有debug和release版本的差别,虽然本质上都是-O -g这些选项的差别,对应与开发着debug和release更多的概念上的差别,debug是面向自己的release是面...
他的最新文章
讲师:汪剑
讲师:刘道宽
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)iOS开发&视图层级调试技巧&Debug&View&Hierarchy
做iOS开发经常会遇见这种情况,产品汪拿着你做的东西过来对你说:“这个Label的字体大小不对,我的效果图里明明标注的是20px,这个大小肯定不是20px”,于是你便跟他争论起来,我代码里设的确实是20px,为了证明你的判断,于是你开是在代码中查找设置字体的地方。这时就有一个问题,如果代码是你写,你也许可以很快的定位到相应的代码,但如果代码不是你写的,那么你就得废一会功夫才能找到响应的设置代码,如果项目非常大,那就更麻烦了。有没有一种更快的办法可以让我们很快的查看UI界面上的一些设置以及UI的一些层次结构呢?当然有,这就是XCode的DebugViewHierarchy功能。
DebugViewHierarchy(视图调试)是XCode6新出的一项功能,它可以让开发者在程序运行时,动态的查看当前界面的显示情况,包括视图的层次,控件的大小和位置,而且会以3D效果显示当前视图的层次。下面就一起来看一下如何进行视图调试吧。
为了简单起见,这里我使用SB快速搭建了一个简单的UI,如下图:&
注意:这里使用的时模拟器,因为只有在模拟器的情况下才能使用DebugViewHierarchy功能
然后,点击调试窗口的DebugViewHierarchy按钮,&
就可以看到整个界面的3D效果图,如下图&
拖动鼠标,可以切换不同的3D视角。&
在左侧的调试导航栏中,选择View UI
Hierarchy,可以看到整个界面的视图层次列表&
选中3D视图中的某个视图,可以在右侧的inspector中看到该视图的详细信息&
3D视图的下面还有一排操作的按钮和进度条,可以调节3D视图的大小,显示层次,间隔等,具体可以实际操作一下就明白了。&
有了DebugViewHierarchy功能,我们就可以很直观地检验我的UI布局,查看各个视图的属性,确实能够带来很大的方便性。其实,iOS6出来之前,就已经出现了许多第三方的界面调试工具,例如大名鼎鼎的,它不但可以查看UI布局,还可以实时修改,这样就不用每次都重新编译运行,但它是收费的(可以免费使用30天),59美元对我等刚入行的码农来说确实有点贵。不过对于一般的界面调试,使用XCode自带的DebugViewHierarchy已经足够了,使用mbp重新编译运行也不会太慢。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。涓婚? : 鍦╥os椤圭洰涓?娇鐢╥Console,瀹炵幇绋嬪簭鍐卍ebug
绾у埆: 渚犲?
鍙戝笘: 91
鍙?彲璞}

我要回帖

更多关于 debug环境 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信