2016-06-12 11 views
0

Objective CでiOSアプリケーションを作成していますが、サーバーの代金を支払う必要はありませんが、報酬システムを作成して3時間ごとに "コイン"彼らはアプリに入るとき。たとえば、ユーザーが午後1時にアプリを終了し、午後5時にアプリを再入力すると、報酬が提供されます。しかし、アプリがバックグラウンドで実行されていなくても、これを持ち越したいと思っています。NSTimer After Afterユーザーが放棄するアプリケーション

これは可能ですか?あなたのAppDelegateで

答えて

2

ここではタイマーではないかもしれませんが、ユーザーの終了時間をNSUserDefaultsまで保存してから、ユーザーがアプリを再入力するたびに、終了時間と現在の時間を比較してギャップが3時間であるかどうかを確認します。

例えば、viewWillDisappearで() あなたが通って出る時間を節約することがあります

NSUserDefaults.standardUserDefaults().setObject(NSDate(), forKey: "exitTime") 

とのviewDidLoadで()、あなたは

NSUserDefaults.standardUserDefaults().objectForKey("exitTime") 
て終了時間を抽出でき
1

機能の下

FUNCのapplicationWillTerminate(アプリケーション:のUIApplication)と呼ばれたとき、あなたはNSUserDefaults

に終了日時を節約することができ

FUNCのapplicationDidEnterBackground(アプリケーション:のUIApplication)

ユーザーがフォアグラウンドに入ると、終了時間を現在の時間といくつかの硬貨に

を与えるが、この方法では、ユーザが設定してiPhoneの日付や時間を編集した場合、コイン

のログを取得することができますいくつかの問題に

を持っていますが、サーバーを使用する場合は、次のことができ日付を比較し、正しく

サーバー

せずにこの問題を解決するためのいくつかのアイデアがあります方法については、定期的に現在の時刻や日付保存しますか?
  • ユーザーがコインを失う前に

    これは、ユーザーがアプリ

  • ユーザーを入力
  • 後3時間に

    1. ユーザー編集iphoneの時間ユースケースでは、3時間にコイン
    2. ユーザー編集iphoneの時間を取得します一部品目

    currentdateがそれ以前の場合あなたが無効なコインであるのでコインを取らなければならない現在の日付を保存しました

    私の考え方はどうですか?