0

毎日真夜中に watchOS コンプリケーションを更新する必要があります。

startOfDay1 日の始まり (つまり、今日の午前 12 時) です。

このように、今日の始まりに 1 日を追加する必要がありますか?

func getNextRequestedUpdateDateWithHandler(handler: (NSDate?) -> Void) {
    // Call the handler with the date when you would next like to be given the opportunity to update your complication content
    let startOfDay = NSDate().startOfDay
    let components = NSDateComponents()
    components.day = 1
    let startOfNextDay = NSCalendar.currentCalendar().dateByAddingComponents(components, toDate: startOfDay, options: NSCalendarOptions())
    handler(startOfNextDay)
}

または、コードに 1 日追加するのではなく、次のようにする必要があります。

func getNextRequestedUpdateDateWithHandler(handler: (NSDate?) -> Void) {
    // Call the handler with the date when you would next like to be given the opportunity to update your complication content
    let startOfDay = NSDate().startOfDay
    handler(startOfDay)
}
4

1 に答える 1

1

次の要求された更新を明日の午前 0 時に実行する必要があるため、日付を 1 日進めます。最初の方法はあなたが望むことをしますが、次のように単純化できます。

let calendar = NSCalendar.currentCalendar()
let startOfDay = calendar.startOfDayForDate(NSDate())
let startOfNextDay = calendar.dateByAddingUnit(.Day, value: 1, toDate: startOfDay, options: NSCalendarOptions())!

2 番目のコードは、今日の午前 12 時を返しますが、これはすでに過去の時間です。

于 2016-04-26T23:58:02.613 に答える