我正在做一个处理敏感信用卡数据的应用程序。
如果我的代码在调试模式下运行,我想将这些数据记录到控制台并进行一些文件转储。
然而,在最终的appstore版本(即当它运行在发布模式时),必须禁用所有这些(安全隐患)!
我会尽力回答我的问题;所以问题就变成了“这个解决方案是正确的还是最好的方法?”
// add `IS_DEBUG=1` to your debug build preprocessor settings
#if( IS_DEBUG )
#define MYLog(args...) NSLog(args)
#else
#define MYLog(args...)
#endif
熊子韬的答案和我用的很接近;我还包括文件名(通过剥离file的路径)。
#ifdef DEBUG
#define NSLogDebug(format, ...) \
NSLog(@"<%s:%d> %s, " format, \
strrchr("/" __FILE__, '/') + 1, __LINE__, __PRETTY_FUNCTION__, ## __VA_ARGS__)
#else
#define NSLogDebug(format, ...)
#endif
熊子韬的答案和我用的很接近;我还包括文件名(通过剥离file的路径)。
#ifdef DEBUG
#define NSLogDebug(format, ...) \
NSLog(@"<%s:%d> %s, " format, \
strrchr("/" __FILE__, '/') + 1, __LINE__, __PRETTY_FUNCTION__, ## __VA_ARGS__)
#else
#define NSLogDebug(format, ...)
#endif