利用宏定义令iOS项目当中的NSLog不执行
今天在博客园主页看到一篇帖子,提到NSLog消耗运行时性能:
http://www.cnblogs.com/sunnyxx/p/3680623.html
解决方案如下,在Prefix.pch文件当中定义宏:
#ifdef DEBUG
#define MyLog(...) NSLog(__VA_ARGS__)
#else
#define MyLog(...)
#endif
这段宏可以根据是否存在DEBUG宏分别展开不同的MyLog方法代码,
如此一来,只要所有地方都使用MyLog代替NSLog,在项目文件的Preprocessor Macros当中,将DEBUG=1去掉,那么打印日志的代码就会全被忽略掉了。
利用宏定义令iOS项目当中的NSLog不执行的更多相关文章
- 指针直接赋值为整型AND利用宏定义求结构体成员偏移量
首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数; 除外,该语句表示指针为空): 所以 ; 这样的代码是不允许的. ...
- [转载]IOS项目打包除去NSLog和NSAssert处理之阿堂教程
原文链接地址:http://blog.sina.com.cn/s/blog_81136c2d0102v1ck.html 原文地址:IOS项目打包除去NSLog和NSAssert处理之阿堂教程作者:时空 ...
- iOS下单例模式实现(二)利用宏定义快速实现
在上一节里提到了用利用gcd快速实现单例模式. 一个项目里面可能有好几个类都需要实现单例模式.为了更高效的编码,可以利用c语言中宏定义来实现. 新建一个Singleton.h的头文件. // @int ...
- 利用maven install jar到项目当中
接着上面利用maven打好的jar包.把刚刚打好的包放入其他项目当中怎么办? 只需要在相同的目录下执行mvn install,maven会自动把jar放到本地仓库中. 这样,原先maven项目中缺少依 ...
- 利用宏定义实现C++程序在Unix和Win32环境下的通用性
[转] 1.1. 宏定义软件的代码,从跨平台的角度来看,可以分为平台相关的和平台无关的.采用C/C++编写的软件,在进行移植时,平台无关的的代码基本上不需要做大的改动,但平台相关的代码需要做很大的调整 ...
- c++中利用宏定义简化for循环使用
话不多说,上方法 #define _for(i,a,b) for( int i=(a); i<(b); ++i) #define _rep(i,a,b) for( int i=(a); i< ...
- 【转】手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- 手把手教你利用Jenkins持续集成iOS项目
前言 众所周知,现在App的竞争已经到了用户体验为王,质量为上的白热化阶段.用户们都是很挑剔的.如果一个公司的推广团队好不容易砸了重金推广了一个APP,好不容易有了一些用户,由于一次线上的bug导致一 ...
- 利用 Jenkins 持续集成 iOS 项目,搭建自动化打包环境
---恢复内容开始--- jenkins是一个广泛用于持续构建的可视化web工具,持续构建即各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:Java, c#, P ...
随机推荐
- [[转]CSS浮动原理
CSS Float是网页设计最强大的灵活性功能之一.本文介绍CSS Float的基本原理和行为特征,并介绍各种浏器Float特性的Bugs. 内容 基本的浮动原理 浮动是如何进行的 浮动从何处开始 水 ...
- OSG坐标系统
1.世界坐标 世界坐标系描述的是整个场景中所有的对象,可以理解为绝对坐标系,所有对象的位置都是绝对坐标.从整体上考虑,它为所有对象的位置提供一个绝对的参考标准,从而避免了物体之间由于独 ...
- java 操作配置文件 .properties
package com.dms.common; import java.io.File; import java.io.FileInputStream; import java.io.FileNotF ...
- POJ1185 炮兵阵地 状态压缩
因为不知道不同的博客怎么转,就把别人的复制过来了,这个题解写的非常好,原地址为: http://hi.baidu.com/wangxustf/item/9138f80ce2292b8903ce1bc7 ...
- poj2389---大数乘法
#include<stdlib.h> #include<stdio.h> #include<string.h> #define MAX 100 int main() ...
- python entry points 例子
pbr的介绍不多,http://ju.outofmemory.cn/entry/156745 $ mkdir entry_test; cd entry_test; git init $ mkdir ...
- js预处理图片个人见解1
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- SQL练习之两个列值的交换
SELECT * FROM dbo.test2
- objective-C学习笔记(一)OBJC简介
如何掌握一门高级编程语言:(这里特指Objective-C) 底层思维: 向下,如何从机器底层的角度来思考程序运行的过程. 关注语言构造.编译转换.内存模型.运行时机制 抽象思维: 向上,当软 ...
- SQL中存储过程和自定义函数的区别(转载)
存储过程: 存储过程可以使得对数据库的管理.以及显示关于数据库及其用户信息的工作容易得多.存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理.存储过程存储在 ...