2017-10-19 2 views
2

Je crée une application de création d'habitudes iOS Swift qui doit envoyer des notifications push à l'utilisateur à certains intervalles de temps et/ou dates spécifiés par l'utilisateur.Quel est le moyen le plus efficace de suivre l'heure/les dates dans une application iOS/Swift?

Par exemple, l'utilisateur 1 crée une nouvelle habitude. Ils spécifient combien de temps ils veulent que cela dure, quels jours ils aimeraient le faire, le moment de la journée pour effectuer la tâche, etc. L'heure de début est le jour où ils le créent. L'utilisateur reçoit des notifications push au moment où il est supposé effectuer une tâche.

Je suis curieux de savoir quelle serait la méthode la plus efficace (efficace avec la mémoire, etc.) pour implémenter ces rappels et suivre le timing de l'habitude par rapport à la date.

NSTimer est-il la solution la plus élégante à ce problème? Est-ce que NSTimer fonctionne en arrière-plan, ce que j'ai lu est une solution gourmande en mémoire?

Je suis certain que cette question sera downvoted, mais j'ai fait des recherches et essayer de trouver une réponse claire pour un bon point de départ à ce sujet. C'est ma première application iOS/Swift. Merci de votre aide.

+0

Vous voudrez implémenter cela sur un serveur. – Sulthan

Répondre

5

Une minuterie normale ne fonctionnera pas en arrière-plan.

Vous souhaitez soit utiliser un service dorsal pour envoyer des notifications push, soit planifier des notifications locales en utilisant UNUserNotificationCenter en créant un UNNotificationRequest.

+0

Merci pour cela ... Aurais-je besoin de créer un serveur pour vérifier les dates saisies par l'utilisateur dans la base de données, afin de définir les intervalles de temps dans UNUserNotificationCenter? Bravo – sharedev

+0

Je ne pense qu'à moi: Je suppose que je pourrais aussi utiliser CoreData pour tenir les intervalles de temps sur le front-end. – sharedev

+1

CoreData ou quelque chose comme Realm fonctionnerait très bien. – Dima

1

Je pense que vous pouvez le réaliser grâce à des notifications locales. Lorsque l'utilisateur définit les jours/heures où il souhaite effectuer la tâche, créez simplement une notification push pour chaque fois. Espérons que ça aide ...