la modélisation d'un événement récurrent dans une database et l'utilisation de UILocalNotification pour triggersr l'événement

Je ne sais pas comment cela fonctionnerait, mais ce que j'aimerais, c'est quelque chose de similaire au réveil d'Apple qui vient avec l'iPhone. Il vous permet simplement de choisir l'heure d'une alarme, de nommer l'alarme, puis de choisir à quelle fréquence vous voulez qu'elle se répète (du dimanche au samedi). En fonction de ce que vous choisissez, l'alarme se triggers une fois ou à intervalles répétés.

Dans mon model de database, je n'étais pas sûr de savoir comment modéliser cela. Si je pensais en termes de simples objects anciens, je penserais que j'aurais un object d'alarme, et l'une de ses propriétés serait un tableau. Dans ce tableau, je pourrais avoir les valeurs du jour de dimanche-Sautrday. Puis, lorsqu'un nouvel object d'alarme est créé, je programme une UILocalNotification pour l'heure sélectionnée et les jours choisis. Pour modéliser cela en termes d'objects de database, je ne suis pas sûr de ce que je suis censé faire. Je pensais quelque chose comme:

Alarme – (nom / string) Jour – (dimanche – samedi / représenté par des entiers 0-6, 1 à plusieurs relation de l'alarme au jour)

En supposant que cela soit correct dans la database, je ne suis pas sûr de la façon dont je devrais planifier les UILocalNotifications puisque je pensais que vous ne pouviez en avoir que 64 par application. Je pense que je pourrais avoir un mécanisme pour programmer les 64 premières alarmes possibles, puis quand l'application est ouverte, elle ne ferait que replanifier les 64 prochains events. Est-ce ainsi que je ferais ça? Merci.

L'utilisation de 2 entités est exagérée. Je voudrais juste avoir l'entité d' Alarm et avoir un seul atsortingbut entier pour contenir les jours d'alarme. En dehors de l'entité, j'aurais une énumération qui définit comment le nombre de jours d'alarme est interprété. Quelque chose comme:

 typedef AlarmDays { Monday = 0, Tuesday = 1 << 0, Wednesday = 1 << 1, Thursday = 1 << 2, Friday = 1 << 3, Saturday = 1 << 4, Sunday = 1 << 5 } AlarmDays; 

Ensuite, vous pouvez tester quels jours il devrait être en utilisant:

 if (alarm.alarmDays & Monday) { // the alarm should fire on mondays } 

Et vous pouvez utiliser les fonctionnalités de UILocalNotification , telles que repeatInterval sorte que vous n'avez pas besoin d'append explicitement des millions de notifications au système.