【问题标题】:On iPhone, how do I check once per day to see if i should phone-home?在 iPhone 上,我如何每天检查一次是否应该打电话回家?
【发布时间】:2010-06-02 21:11:43
【问题描述】:

我只想每天检查一次服务器上的文件 (NSURL)。而且,无论我是否获取文件,那天我都不会再次运行该函数(检查文件)。

这看起来很容易……但我预见到了问题。假设我在 mainBundle 下创建了一个目录:“/Library/runOnceEachDay/”。也许我可以写信给 /Library/runOnceEachDay/20100601 知道该文件只有在我已经运行该函数时才会存在。如果不存在,则运行该函数,并在该函数成功后写入一个以日期为文件名的零长度文件。然后在运行该函数之前检查“mainBundle/Library/runOnceEachDay/YYYYMMDD”,而 YYYYMMDD 是今天的日期。如果该文件存在,请不要运行。

我可以每周运行一次房屋清洁例程来清洁该目录一次或其他什么。有更好的想法吗?

谢谢!

【问题讨论】:

    标签: iphone cron nsfilemanager


    【解决方案1】:

    逻辑很好。您可以按照您所说的那样处理文件,并且“文档”文件夹是此类文件的好位置,或者您可以只使用 NSUserDefaults 键,其中包含您上次打电话回家的日期。

    【讨论】:

    • Isn't Documents BAD 因为它将开放给具有 iTunes 新“投递箱”权限的用户查看 - 但感谢您如此迅速地响应。
    【解决方案2】:

    当您启动应用程序时,从 NSUserDefaults 获取以前的手机回家日期/时间 (NSDate)。 (它不会第一次出现)。这个SO question (option 1) 演示了如何。

    如果自上一个日期/时间(或您在那里没有找到)已过去超过 24 小时(或 7 天或其他任何时间),则打电话回家并将当前日期/时间保存在 NSUserDefaults 中以供下次启动。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多