如何在Swift中打印可选整数类型的信息?

3

NSLog 在 Swift 中仍然存在,并且提供了一些 println 不可用的额外功能,例如时间戳、模块和线程。

然而,我不确定如何记录一个可选项,例如一个可选的 Int

记录一个已展开的可选项可以正常工作,例如:

if let i = myIndex 
{
   NSLog("%@ i %d", __FUNCTION__, i)
}

尝试记录myIndex,我希望它是一个对象,因此使用格式说明符%@
NSLog("%@ myIndex %@", __FUNCTION__, myIndex)

出现构建错误:
Value of optional type 'Int?' not unwrapped; did you mean to use '!' or '?'?

我该如何使用NSLog - 而不是println - 将我的可选整数打印到控制台?
1个回答

14

只需使用字符串插值语法:

let d: Int? = 5

NSLog("\(d)")

之前一直在使用它,不过似乎会导致崩溃。至少在 beta 3 之前是这样的。现在会再次尝试它。 - Max MacLeod
是的,它总是编译正常,但有时在带有插值的 NSLog 上崩溃。 - Max MacLeod
会不会是同一个 beta 版本崩溃了?我没有遇到过这种情况。 - Dániel Nagy
1
作为替代方案,您可以使用:let i: Int? = 5 NSLog("%@", toString(i)) - Kirsteins
最近使用Xcode 6.3.1 (6D1002)的NSLog字符串插值时没有遇到崩溃问题,因此接受上面的答案。感谢@DánielNagy。 - Max MacLeod

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接