2

サーバー上のファイルを1日1回だけチェックしたい(NSURL)。また、ファイルをフェッチするかどうかに関係なく、その日は(ファイルをチェックするための)関数を再度実行しません。

これは簡単に思えます...しかし、私は問題を予見しています。mainBundleの下にディレクトリ「/Library/runOnceEachDay/」を作成したとします。おそらく、/ Library / runOnceEachDay / 20100601に書き込むことができます。これは、すでに関数を実行した場合にのみファイルが存在することを知っています。存在しない場合は、関数を実行し、関数が成功した後、ファイル名として日付を使用して長さゼロのファイルを書き込みます。次に、その関数を実行する前に「mainBundle / Library / runOnceEachDay / YYYYMMDD」を確認しますが、YYYYMMDDは今日の日付です。そのファイルが存在する場合は、実行しないでください。

ハウスクリーニングルーチンを実行して、そのディレクトリを週に1回程度クリーニングすることができます。より良いアイデアはありますか?

ありがとう!

4

2 に答える 2

4

論理は良いです。あなたが言うようにファイルでそれを行うことができ、「ドキュメント」フォルダはそのようなファイルのための良い場所です、またはあなたが最後に家に電話した日付でNSUserDefaultsキーを持つことができます。

于 2010-06-02T21:13:33.357 に答える
2

アプリを起動するときに、NSUserDefaultsから以前の電話のホーム日時(NSDate)を取得します。(初めてはありません)。このSO質問(オプション1)は、その方法を示しています。

その前の日付/時刻から24時間(または7日など)以上経過した場合(またはそこに見つからなかった場合)は、自宅に電話して、次の起動のために現在の日付/時刻をNSUserDefaultsに保存します。

于 2010-06-02T23:20:03.607 に答える