使用Xcode-debug模式和release模式
在开发过程中,我们常常须要用到NSLog输出一些信息,甚至有的开发过程。必须在控制台查看输出,有经验的程序猿通过控制台输出就能知道整个数据交互的一个流程。
可是一个公布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们能够使用一个宏定义来处理,在开发的时候使用DEBUG模式,在公布的时候使用RELEASE模式。这样,公布的App就不会在程序内部做大量的NSLog输出了。
简单的代码例如以下,
|
1
2
3
4
|
#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不会运行。
这样就在公布程序的时候。节省了一些硬件设备的资源。
使用Xcode-debug模式和release模式的更多相关文章
- .Net中的Debug模式和Release模式
1.Debug模式和Release模式 在vs中,运行程序有两种模式:Debug和Release 在bin目录下也会生成对应的文件夹,用于存放生成的dll等文件,这两种模式的区别如下: Debug:用 ...
- 【C++】Debug模式和Release模式的区别
VS中的程序有两种编译模式:Debug模式和Release模式. Debug通常称为调试版本,通过一系列编译选项的配合,编译结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能 ...
- Xcode中使用debug模式和release模式
在开发过程中,我们经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程.但是一个发布的程序,里面带有太多的NSLog输 ...
- .NET中Debug模式与Release模式
Visual Studio 项目对程序的发布和调试版本分别有单独的配置.顾名思义,生成调试版本的目的是用于调试,而生成发布版本的目的是用于版本的最终分发. 如果在 Visual Studio 中创建程 ...
- VS中Debug模式和Release模式的区别
一.Debug 和 Release 编译方式的本质区别 Debug 通常称为调试版本,它包含调试信息,并且不作任何优化,便于程序员调试程序.Release 称为发布版本,它往往是进行了各种优化,使得程 ...
- .NET中Debug模式与Release模式差别
Debug里的PDB是full,保存着调试和项目状态信息.有断言.堆栈检查等代码.Release 里的PDB是pdb-only,基本上:出什么错了+错误在哪行. 因为很多人把PDB理解成:调试文件.P ...
- IOS中(Xcode) DEBUG模式(RELEASE模式)控制NSLog输出,NSLog两种不同情况的输出方式
[新年新气象,2016/01/04] 俺们在开发IOS程序过程中,经常需要用到NSLog输出一些信息,甚至有的开发过程,必须在控制台查看输出,有经验的程序员通过控制台输出就能知道整个数据交互的一个流程 ...
- Xcode DEBUG宏定义,debug和release模式的选择
设置DEBUG, 使用宏定义: #if DEBUG NSLog(@"debug model"); #else //执行release模式的代码 #endif
- 解决部分在Debug模式下程序没问题但是Release模式下出现问题的方法
编译策略介绍 关于优化级别:GCC_OPTIMIZATION_LEVEL 描述如下 None: Do not optimize. [-O0]With this setting, the compil ...
随机推荐
- uiautomator中InteractionController学习笔记(8)
4.1版本号 InteractionController将用户的键盘事件注入到android系统中,与系统进行交互(电视为什么不能设计成可组装,屏幕多大自己决定,想 多大就多大) click(int, ...
- ubuntu13.10升级到ubuntu14.04
Upgrading from Ubuntu 13.10 To upgrade from Ubuntu 13.10 on a desktop system: Open Software Sources. ...
- Codeforces Round #316 (Div. 2)E. Pig and Palindromes DP
E. Pig and Palindromes Peppa the Pig was walking and walked into the forest. What a strange coinci ...
- 基于nginx的最基础的TCP代理,经过测试可通!
测试操作系统为win7,nginx版本为1.9.4. 在本机上编写java程序一个socket服务类SocketServer,监听端口为8889, (增加了一个SocketServerThread线程 ...
- C# MVC登录判断状态
public class AuthenAdminAttribute:FilterAttribute,IAuthorizationFilter { public void OnAuthenticatio ...
- php链接memcache操作
设置值 set key 压缩标识 有效期 长度 set name 0 60 5 hello 压缩标识:用于告诉memcached服务器是否压所后存储数据,目的是为了节省磁盘空间,压所和解压缩会消耗时间 ...
- 使用JS&jQuery改善用户体验
第一章 JavaScript基本语法 一.运算符 运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&= ...
- jsonp模仿了得一个百度搜索框
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Caffe CommonLayer分析
Caffe CommonLayer分析 \(Caffe\)中包含了很多通用的功能层,包含了\(concat\),\(slice\),\(split\),\(crop\),\(flip\),\(scal ...
- NSRunloop总结
NSRunloop是一个消息处理机制:是一个循环. 系统通过消息队列和runloop与进程(线程)通信. runloop是一个机制和体系结构. 它包含以下几个方面: 1.事件源管理: 2.事件的检索与 ...