Swift:摆脱时间戳 NSLog()
Posted
技术标签:
【中文标题】Swift:摆脱时间戳 NSLog()【英文标题】:Swift: Get rid of timestamp NSLog() 【发布时间】:2015-03-05 11:24:33 【问题描述】:是否可以去掉NSLog()
中的时间戳?
我想保留 NSLog 功能但有更简单的输出。
println()
不是选项,因为线程的行为
【问题讨论】:
不回答你的问题,但你为什么要保留 NSLog?如果您使用 NSLogs 将您的应用程序推送到商店,您将得到 ERROR 记录,如果您想保留它,您将自己使用它并且可以忽略它。 我只想根据需要创建日志。时间戳大多是不需要的 【参考方案1】:基于println
部署你自己的日志,它使用GCD来确保它在主线程上执行,例如
func log(string: String)
dispatch_async(dispatch_get_main_queue()) println(string)
您也可以使用编译器标志禁用此功能以进行发布,例如见Disabling NSLog For Production In Swift Project。
【讨论】:
我 NSLog 只是在主线程上?!不也是同步的吗? AFAIKNSLog
仅确保输出以线程安全的方式写入stderr
(这是与println
的另一个区别)。或者你所说的同步是什么意思?如果它会阻塞调用者直到它完成,那么使用dispatch_sync
。以上是关于Swift:摆脱时间戳 NSLog()的主要内容,如果未能解决你的问题,请参考以下文章
在 Xcode 中,有没有办法在调用 NSLog 时禁用调试器控制台中出现的时间戳?