从.a lib禁用NSLogs

问题描述

| 在我的项目中,我从各个库中获取了很多.a以及控制台中的一些垃圾邮件 输出。 有没有办法禁用我的构建中的所有NSLogs甚至禁用我的构建? 这些是否会影响最终版本的构建? 例如:
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 \找不到任何内容。我能以某种方式强迫将它们删除吗?     

解决方法

        NSLog确实确实影响发行版本的性能。我建议进行全局搜索并替换所有NSLog语句。这样,您可以删除或至少注释掉所有日志记录语句。 为了将来参考,您可以制作自己的loggig函数,该函数包装NSLog,但检查将定义的编译时间常数。 编辑: 可能可以使用类别覆盖这些NSLogs。 (但是,我不知道将哪个类别归为一个类别。)     ,        简单(但不是最干净的方法)方法是声明一些#define
#if defined(NO_LOGS)
    #define NSLog(xyz) 
#endif
当您打开NO_LOGS时,它将禁止所有NSLog语句。