2016-04-26 3 views
0

Je dois mettre à jour ma complication watchOS à minuit tous les jours.Création d'une date pour getRequestedUpdateDateWithHandler:

startOfDay est le début de la journée (c'est-à-dire 12 heures aujourd'hui).

Dois-je ajouter un jour au début d'aujourd'hui comme ça?

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) 
} 

Ou devrais-je pas ajouter un jour au code, et il suffit de faire quelque chose comme ceci:

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) 
} 

Répondre

1

Vous voudriez faire avancer la date un jour, puisque vous voulez que votre prochaine mise à jour demandée se produire à demain minuit. La première méthode serait faire ce que vous voulez, mais vous pouvez le simplifier comme suit:

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

Le second code retournerait douze heures, ce qui serait déjà dans le passé d'aujourd'hui.