gpt4 book ai didi

swift - 如何从 NSDate(timeIntervalSince1970) 转换为 NSDate()?

转载 作者:行者123 更新时间:2023-11-28 06:28:07 29 4
gpt4 key购买 nike

这是我的代码。但是一个错误说,不能用类型的参数列表调用 dateComponent...

 let fromDate = NSDate(timeIntervalSince1970: TimeInterval(tweetsArray[indexPath.row].timestamp)!)

let toDate = NSDate()

let components : NSCalendar.Unit = [.second, .minute, .hour, .day, .weekOfMonth]

let differenceOfDate = NSCalendar.current.dateComponents(components, from: fromDate, to: toDate)

最佳答案

在 Swift 3 中,NSCalendar.current返回 Calendar , 哪一个是基金会的 Swift 值包装器类型 NSCalendar类型。

dateComponents()需要 Set<Calendar.Component>和两个 Date争论。 DateNSDate 的 Swift 值包装器类型.

将现有的 Foundation API 导入 Swift 时,类型会自动桥接,这就是为什么 NSCalendar.current返回 Calender而不是 NSCalendar .

值类型在 Swift 3 中是首选,因为它们提供适当的值语义并使用 letvar反而不可变和可变变体。

综合起来:

let fromDate = Date(timeIntervalSince1970: ...)
let toDate = Date()
let components = Set<Calendar.Component>([.second, .minute, .hour, .day, .weekOfMonth])
let differenceOfDate = Calendar.current.dateComponents(components, from: fromDate, to: toDate)

有关 Swift 3 值包装器类型和它们相应的基础类型,请参见 SE-0069 Mutability and Foundation Value Types ,或“桥接类型”部分 Working with Cocoa Frameworks在“将 Swift 与 Cocoa 和 Objective-C 结合使用”引用。

关于swift - 如何从 NSDate(timeIntervalSince1970) 转换为 NSDate()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41198803/

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