如何在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
?@erdekhayser
println
NSLog
不仅仅是两个等价的选项,而
println
是更快捷的选项
NSLog
将时间戳错误写入系统日志,
println
只将文本写入
stdout
@MatthiasBauch,在这种情况下,字符串不会被打印出来。它将被正确的swift语法“可选”包围:NSLog(%@),String((s)))