【问题标题】:How to NSLog an Optional Int in Swift?如何在 Swift 中 NSLog 一个可选的 Int?
【发布时间】:2015-04-01 09:41:14
【问题描述】:

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 - not println - 来控制我的 Optional Int?

【问题讨论】:

    标签: swift nslog optional


    【解决方案1】:

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

    let d: Int? = 5
    
    NSLog("\(d)")
    

    【讨论】:

    • 正在使用它,但它似乎会导致崩溃。至少在 beta 3 之前。现在就试试
    • 是的,它总是编译正常,但有时在 NSLog 上通过插值崩溃
    • 不可能是同样的 beta 崩溃?我没有经历过。
    • 您也可以使用:let i: Int? = 5NSLog("%@", toString(i))
    • 这些天没有看到使用 Xcode 6.3.1 (6D1002) 进行 NSLog 字符串插值的崩溃,所以接受上面的答案。谢谢@DánielNagy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多