2010-06-02 13 views
2

Je veux vérifier un fichier sur le serveur seulement une fois par jour (NSURL). Et, peu importe si je récupère le fichier ou pas, je n'exécute pas la fonction (pour vérifier le fichier) à nouveau ce jour-là.Sur iPhone, comment vérifier une fois par jour si je dois téléphoner chez moi?

Cela semblerait facile ... mais je prévois des problèmes. Dites que j'ai créé un répertoire sous le mainBundle: "/ Library/runOnceEachDay /". Peut-être que je pourrais écrire dans/Library/runOnceEachDay/20100601 en sachant que le fichier n'existerait que si j'avais déjà exécuté la fonction. Si ce n'est pas le cas, exécutez la fonction et, une fois la fonction réussie, écrivez un fichier de longueur nulle avec la date comme nom de fichier. Ensuite, vérifiez avant d'exécuter cette fonction pour "mainBundle/Library/runOnceEachDay/YYYYMMDD" alors que YYYYMMDD est la date d'aujourd'hui. Si ce fichier existe, ne courez pas.

Je pourrais exécuter une routine de nettoyage pour nettoyer ce répertoire une fois par semaine ou quelque chose. De meilleures idées?

Merci!

Répondre

2

Lorsque vous démarrez l'application, récupérez la date/l'heure de la maison du téléphone précédent (NSDate) à partir de NSUserDefaults. (Il ne sera pas là la première fois). Ce SO question (option 1) montre comment. Si plus de 24 heures (ou 7 jours ou autre) se sont écoulées depuis cette date/heure précédente (ou si vous ne l'avez pas trouvée), alors téléphonez à la maison et enregistrez la date/heure actuelle dans NSUserDéfauts pour le prochain démarrage.

4

La logique est bonne. Vous pouvez soit le faire avec des fichiers comme vous le dites et le dossier "Documents" est un bon emplacement pour de tels fichiers, ou vous pourriez simplement avoir une clé NSUserDefaults avec la date à laquelle vous avez téléphoné pour la dernière fois à la maison.

+0

N'est-ce pas un document BAD comme il serait ouvert à la visualisation par les utilisateurs avec les nouvelles autorisations de "boîte de dépôt" d'iTunes - mais merci de répondre si rapidement. – Jann

+0

+1 NSUserDefaults FTW! – Ukko