Xcode进行调试时候,经常看到debug和release,那么他们是什么呢?
debug是调试版本, release是发行版本,
Xcode里面,但凡有debug和release 设置的地方,就是分别针对开发调试版本的配置,和发布版本的配置。以满足开发中的调试和发布不同的需求。
一般来讲,debug是调试版本,包含的东西多,体积大,运行起来要耗费更多资源,而发布给客户使用时候,资源包大,运行耗费资源,肯定不行,所以,release 运行速度快。
debug 与release 的应用:
在开发过程中,我们经常需要用到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不会执行。这样就在发布程序的时候,节省了一些硬件设备的资源