在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程。但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。
简单的代码如下,
#if defined(DEBUG)||defined(_DEBUG)
NSLog(@"测试代码");
NSLog(@"Test Coding");
#endif
上面的#if #endif宏定义的意思就是如果定义了DEBUG,那么就使用NSLog输出;否则这段代码直接忽略。有人会疑问这个DEBUG和_DEBUG来自哪里,这个其实不用担心,这个来自于Xcode的默认设置,我们可以取消DEBUG模式,开启RELEASE发布模式,如下截图所示,
选择Product->Scheme->Edit Scheme,
下图可以选择Debug和Release两种模式,
这里我选择了Release,那么则默认没有定义Debug,则上面代码中#if...#endif之间的输出NSLog不会执行。这样就在发布程序的时候,节省了一些硬件设备的资源。
1,Debug和Release版本区别?
进行iOS开发,在Xcode调试程序时,分为两种方式,Debug和Release,在Target的Setting中相信大家应该看到很多选项都分为Debug和Release,方便我们分别设置,满足调试和发布的不同需求。
Release是发行版本,比Debug版本有一些优化,文件比Debug文件小 Debug是调试版本,Debug和Release调用两个不同的底层库。通俗点讲,我们开发者自己内部真机或模拟器调试时,使用Debug模式就好,等到想要发布时,也就是说需要大众客户使用时,需要build Release版本,具体区别如下:
一、Debug是调试版本,包括的程序信息更多
二、只有Debug版的程序才能设置断点、单步执行、使用TRACE/ASSERT等调试输出语句
三、Release不包含任何调试信息,所以文件小、运行速度快
从这里点击目标文件生成的路径进入查看文件
那怎么调Release版本?首先选择Product一栏>Scheme>Edit Scheme
在Build Configuration中选择release ,其他都不要动,close 再编译一次。当你这里设置Debug时,你build/Run后就是debug版本,相应的,修改成Release模式,出来的就是release版本,这里可以很方便切换。
刚开发时,始终不知道这个的作用,只知道要打包生成APP时,需要用这个,那么到底Archive和Release有什么关系呢?
archive是你要上传包的时候打包。也就是说Archive只跟APP要上传到appStore的时候有关,一般情况下,只有在那个时候才会用Archive,可以这么理解。所以Archive也分为Debug和Release两个,你可以Archive出一个Debug版本的应用也可以Archive出一个Release的应用。直接archive 是系统提供帮助打包的,Archive生成后的文件会小很多。