gpt4 book ai didi

swift - NSDateComponents 语法的差异?

转载 作者:IT王子 更新时间:2023-10-29 05:16:53 25 4
gpt4 key购买 nike

我一直在使用 Swift 和 Xcode 6.3.2 开发一个时钟应用程序,以下代码构建和运行得很好。

// Get current time
let date = NSDate()
let calendar = NSCalendar.currentCalendar()
let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitSecond | .CalendarUnitNanosecond, fromDate: date)
let hour = components.hour % 12
let minute = components.minute
let second = components.second
let nanosecond = components.nanosecond

但是,当我在 Xcode 7.0 beta 中加载同一个项目并且不做任何更改时,我在 calendar.components 行上收到错误。

Could not find member 'CalendarUnitHour'

我查看了文档,发现所有 NSCalendarUnit 常量都已弃用(在 iOS 8.0 中它说)但是组件方法的方法描述仍然说要使用它们。

我试过其他 NSCalendarUnit 自动完成值,但没有一个生成工作代码,而且我在网上找不到任何最近的示例,也许是因为这是全新的。

有人知道新的正确方法吗?

最佳答案

swift 2

NSCalendarUnit 名称在 Swift 2 中已更改。

此外,现在我们必须在 OptionSet 中传递这些参数,如下所示:

let components = calendar.components([.Hour, .Minute, .Second, .Nanosecond], fromDate: date)

swift 3

根据Swift API Design Guidelines,很多事情都变了.

更新语法:

let date = Date()
let calendar = Calendar.current()
let components = calendar.components([.hour, .minute, .second, .nanosecond], from: date)

swift 4

Calendar.current 现在是一个属性,.components 已重命名为 .dateComponents。否则它与 Swift 3 中的相同。

let calendar = Calendar.current
let components = calendar.dateComponents([.hour, .minute, .second, .nanosecond], from: date)

关于swift - NSDateComponents 语法的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30798561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com