На iPhone, как проверить один раз в день, чтобы увидеть, должен ли я звонить домой? - PullRequest
2 голосов
/ 03 июня 2010

Я хочу проверять файл на сервере только один раз в день (NSURL). И, независимо от того, извлекаю ли я файл или нет, я не запускаю функцию (для проверки файла) снова в тот день.

Это казалось бы легким ... но я предвижу проблемы. Скажем, я создал каталог в mainBundle: "/ Library / runOnceEachDay /". Возможно, я мог бы написать в / Library / runOnceEachDay / 20100601, зная, что файл будет существовать, только если я уже запустил функцию. Если он не существует, запустите функцию и после ее успешного выполнения запишите файл нулевой длины с датой в качестве имени файла. Затем проверьте перед запуском этой функции «mainBundle / Library / runOnceEachDay / YYYYMMDD», тогда как YYYYMMDD - сегодняшняя дата. Если этот файл существует, не запускайте.

Я мог бы запустить процедуру очистки дома для очистки этого каталога один раз в неделю или что-то в этом роде. Есть идеи получше?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 03 июня 2010

Логика хороша. Вы можете сделать это с файлами, как вы говорите, и папка «Документы» является хорошим местом для таких файлов, или вы можете просто иметь ключ NSUserDefaults с датой вашего последнего звонка домой.

2 голосов
/ 03 июня 2010

Когда вы запускаете приложение, получите предыдущую дату / время домашнего телефона (NSDate) от NSUserDefaults. (Это не будет там в первый раз). Этот SO вопрос (вариант 1) демонстрирует, как.

Если прошло более 24 часов (или 7 дней или что-то еще) с той предыдущей даты / времени (или вы их там не нашли), позвоните домой и сохраните текущую дату / время в NSUserDefaults для следующего запуска. 1005 *

...