gpt4 book ai didi

swift - NSCalendar.startOfDayForDate(日期 :) equivalent for iOS 7 with non-optional return type

转载 作者:可可西里 更新时间:2023-11-01 01:35:45 26 4
gpt4 key购买 nike

是否可以更改 NSDate 对象,使结果等同于 NSCalendar.startOfDayForDate(date:)?该方法仅适用于 iOS 8 及更高版本,但我正在寻找适用于 iOS 7 的方法。

我看过两种方法:

  • NSCalendar.dateFromComponents(comps:) 如下所述:NSDate beginning of day and end of day .例如,像这样:

    class func startOfDay(date: NSDate, calendar: NSCalendar) -> NSDate {
    if #available(iOS 8, *) {
    return calendar.startOfDayForDate(date)
    } else {
    let dateComponents = calendar.components([.Year, .Month, .Day], fromDate: date)
    return calendar.dateFromComponents(dateComponents)!
    }
    }
  • NSDateFormatter.dateFromString(string:) 通过stringFromDate(date:),即将NSDate对象转换成一个没有时间的字符串,然后再转换回NSDate对象。

这两种方法的问题在于它们返回一个可选的 NSDate。我不愿意隐式地展开它,我宁愿避免更改调用这些方法的方法的返回类型。

最佳答案

我认为 calendar.components() 方法返回一个可选的,因为理论上您可以输入不创建有效日期的组件,例如 2000-02-30。如果像您的情况一样,组件已经来自有效日期,那么我不会不愿意隐式地打开可选组件。

关于swift - NSCalendar.startOfDayForDate(日期 :) equivalent for iOS 7 with non-optional return type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634297/

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