Swift date(byAdding:to :)返回nil,以便在REPL中进行微不足道的计算

问题描述 投票:0回答:1

我希望它返回一个Date对象,代表从现在开始一小时的时间:

Calendar.current.date(byAdding: DateComponents(hour: 1), to: Date()) 

但是它返回nil。这似乎是API的一种非常简单的用法,所以也许我对API的工作原理有一些基本的误解?

此[[only似乎会影响Xcode随附的swift命令行REPL(macOS Catalina 10.15.3上的版本11.3.1)。

有趣的是,将上述代码包装在print()调用中会强制其打印正确的结果。那么为什么显示nil

Apple Swift version 5.1.3 (swiftlang-1100.0.282.1 clang-1100.0.33.15) Target: x86_64-apple-darwin19.3.0

swift date read-eval-print-loop
1个回答
0
投票
这是Swift REPL中的错误,请参阅

  • 它会影响某些Swift覆盖类型(例如DateCalendarURL)的可选和非可选值。示例:

    $迅速欢迎使用Apple Swift版本5.1.3(swiftlang-1100.0.282.1 clang-1100.0.33.15)。键入:help以获得帮助。1>导入基础2>3>让d1 = Date()d1:日期= {}4>让d2:日期? =日期()d2:日期? =无5> let url = URL(字符串:“ https://www.google.com”)网址:URL? =无

    作为解决方法,您可以

    打印值:

    7>打印(d1)2020-03-03 10:17:00 +00008>打印(d2)可选(2020-03-03 10:17:07 +0000)9>打印(URL)可选(https://www.google.com)
  • © www.soinside.com 2019 - 2024. All rights reserved.