如何在Swift中打印可选值?
记录可选值的最佳方法是什么?这是我能想到的最好的:如何在Swift中打印可选值?,swift,Swift,记录可选值的最佳方法是什么?这是我能想到的最好的: var s:String? = nil NSLog("s:%@", s ?? "<nil>") var s:String?=无 NSLog(“s:%@”,s??) 类似这样的内容: println(s ?? "(nil)") 如果您不想在存在值的情况下指出它是可选值,那么您的方法是有效的。但是对于日志记录,最好指出可选性,否则可能会导致混淆toString将保留指示器: NSLog("%@", toString(s)) //
var s:String? = nil
NSLog("s:%@", s ?? "<nil>")
var s:String?=无
NSLog(“s:%@”,s??)
类似这样的内容:
println(s ?? "(nil)")
如果您不想在存在值的情况下指出它是可选值,那么您的方法是有效的。但是对于日志记录,最好指出可选性,否则可能会导致混淆
toString
将保留指示器:
NSLog("%@", toString(s)) // either nil, or Optional("blah")
现在我明白了。如果只使用
“%@”,s
NSLog将崩溃。显然,我从未在swift中使用过NSLog。为什么不使用println
?@erdekhayserprintln
和NSLog
不仅仅是两个等价的选项,而println
是更快捷的选项NSLog
将时间戳错误写入系统日志,println
只将文本写入stdout
@MatthiasBauch,在这种情况下,字符串不会被打印出来。它将被正确的swift语法“可选”包围:NSLog(%@),String((s)))