【问题标题】:Conditional binding swift3 date [duplicate]条件绑定swift3日期[重复]
【发布时间】:2017-09-13 14:32:01
【问题描述】:

我在 swift 中遇到了强制展开问题,我一直在修复所有问题。所以我强制展开,但我收到此错误“条件绑定的初始化程序必须具有可选类型,而不是'日期'。这是代码。

if let createdat = (object?.object(forKey: "createdAt") as? String){
        if let pastDate = Date(timeIntervalSinceNow: TimeInterval(createdat)!)//Here is where I get the error{

        }
    }

【问题讨论】:

    标签: swift swift3


    【解决方案1】:

    由于您正在使用的 Date 初始化程序不返回可选的(即它是一个不可失败的初始化程序),因此您不能(并且没有意义)在可选上下文中使用它(例如作为if-let 模式)。

    从您的代码中删除 if-let 可以解决问题:

    if let createdat = (object?.object(forKey: "createdAt") as? String){
        let pastDate = Date(timeIntervalSinceNow: TimeInterval(createdat)!)
    }
    

    【讨论】:

      【解决方案2】:

      Date() 不返回可选值,它返回日期。这意味着你不能使用

      if let
      

      你可以使用

      let
      

      【讨论】:

      • rmaddy 指出了一个很好的解释。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多