gpt4 book ai didi

date - NSDate 从 Swift 2.3 到 Date 从 Swift 3 转换

转载 作者:行者123 更新时间:2023-12-03 02:26:11 25 4
gpt4 key购买 nike

所以我刚刚更新到 Xcode 8,并将 Swift 2.3 代码转换为 Swift 3,而 Swift 3 刚刚将所有 NSDate 转换为 Foundation.Date

我有一个 NSDate扩展,现在称为Foundation.Date,它看起来像这样:

extension NSDate
{
var firstDayOfTheMonth:NSDate
{
var date: NSDate?
NSCalendar.currentCalendar().rangeOfUnit(.Month, startDate:&date , interval: nil, forDate: self)
return date!
}
}

Swift 3 将其转换为:

extension Foundation.Date
{
var firstDayOfTheMonth:Foundation.Date
{
var date: Foundation.Date?
(Calendar.current as NSCalendar).range(of: .month, start:&date , interval: nil, for: self)
return date!
}
}

这里的问题是 Xcode 建议我这样做:无法转换“日期”类型的值?到预期的参数类型 'NSDate?' 并删除 &

所以,我改变了它,函数现在看起来像这样:

extension Foundation.Date
{
var firstDayOfTheMonth:Foundation.Date
{
var date: Foundation.Date?
(Calendar.current as NSCalendar).range(of: .month, start:date as NSDate?, interval: nil, for: self)
return date!
}
}

但现在 Xcode 说无法转换“日期”类型的值?输入“NSDate?”胁迫

我怎样才能做到这一点?

最佳答案

好吧,这种转换并不是迁移器最好的工作;-)

这是与您的代码等效的 Swift 3

extension Date
{
var firstDayOfTheMonth:Date
{
var date = Date()
var interval : TimeInterval = 0
Calendar.current.dateInterval(of: .month, start: &date, interval: &interval, for: self)
return date
}
}

即使没有使用,interval 参数似乎也是必需的。

关于date - NSDate 从 Swift 2.3 到 Date 从 Swift 3 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39581248/

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