从.a库中禁用NSLog

时间:2011-06-14 00:01:48

标签: iphone objective-c

我的项目中有很多.a来自各种库和控制台的一些垃圾邮件 输出

有没有办法从构建中禁用所有NSLog甚至我自己的?

这些会影响最终版本吗?

例如:

AD URL: http://ads.mp.mydas.mobi/getAd.php5?medialets=false&sdkapid=44300&auid=a83014b158258e5bda3ee3f3634eaa17b66d9fce&mmisdk=4.2.4-11.4.25.i&ua=iPhone%204.2.1&dv=4.2.1&dm=iPhone2,1&adtype=MMBannerAdTop&hswd=320&hsht=53&accelerometer=true&vendor=adwhirl&video=true&language=en&country=IE&cachedvideo=true

这将输出到控制台。但在项目中搜索文本“AD URL”却什么也没找到。我能否以某种方式强行删除这些?

2 个答案:

答案 0 :(得分:0)

NSLog确实会影响发布版本的性能。我建议进行全局搜索并替换所有NSLog语句。这样,您可以删除或至少注释掉所有日志记录语句。

为了将来参考,您可以创建自己的包装NSLog的loggig函数,但检查您要定义的编译时常量。

修改

可以使用类别覆盖那些NSLog。 (但我不知道哪个类可以作为一个类别。)

答案 1 :(得分:0)

简单(但不是最干净的方法)方法是声明一些像#define一样的

#if defined(NO_LOGS)
    #define NSLog(xyz) 
#endif

当你打开NO_LOGS时会压缩所有的NSLog语句。