- 在开发过程中,我们经常需要用到NSLog输出一些信息,但是一个发布的程序,里面带有太多的NSLog输出,肯定对于App性能有所影响,这时候我们可以使用一个宏定义来处理,在开发的时候使用DEBUG模式,在发布的时候使用RELEASE模式。这样,发布的App就不会在程序内部做大量的NSLog输出了。
在OC中我们一般这样写
//调试模式
#ifdef DEBUG
#define XMLog(...) NSLog(__VA_ARGS__)
#else
//发布模式(release)
#define XMLog(...)
#endif
定义成宏,然后使用XMLog代替NSLog就行了。
但是在Swift中并没有宏DEBUG
,跟着下面的步骤设置Swift拥有DEBUG
打印功能
1 .Build Settings ->搜索 Other Swift Flags ->
2 .在Debug里面添加-D
DEBUG
总结:Swift
中对宏不友好,但是我们可以定义一个全局函数来实现Debug
和Release
下的输出。像下面这样
func printLog<T>(message: T,
file: String = __FILE__,
method: String = __FUNCTION__,
line: Int = __LINE__)
{
#if DEBUG
print("\((file as NSString).lastPathComponent)[\(line)], \(method): \(message)")
#endif
}