2016-06-12 13 views
0

我在Objective C中創建了一個iOS應用程序。我不想爲服務器支付費用,但我想創建一個獎勵系統,以便每3小時用戶獲得「硬幣」當他們進入應用程序。例如,如果用戶在下午1點退出應用程序,並在下午5點重新進入應用程序,則獎勵將準備就緒。不過,即使應用程序沒有在後臺運行,我也希望這樣做。用戶離開應用程序後的NSTimer

這可能嗎?

回答

2

也許這裏沒有計時器,但通過NSUserDefaults保存用戶的退出時間,然後每當用戶重新輸入應用程序時,將退出時間與當前時間進行比較,以查看間隔是否爲3小時。

例如,在viewWillDisappear() 你可能會節省通過出口時間:

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

而且在viewDidLoad中(),您可以通過

NSUserDefaults.standardUserDefaults().objectForKey("exitTime") 
提取退出時間
1

在AppDelegate中,你可以退出日期時間保存到NSUserDefaults的

以下功能時,也被稱爲

FUNC applicationWillTerminate(應用程序:UIApplication的)

FUNC applicationDidEnterBackground(應用程序:UIApplication的)

當用戶輸入前景時,可以將退出時間與當前時間和給一些硬幣

但這種方式有一些問題

如果用戶編輯iPhone的日期或在設定的時間,就可以得到一個日誌硬幣

的,但如果你使用的服務器,你可以比較日期正確

有一些方法來解決這個問題,而服務器

怎麼樣節省週期性當前時間或日期?

這是用例

  1. 用戶編輯iPhone的時間至3小時後
  2. 用戶輸入的應用程序
  3. 用戶得到硬幣
  4. 用戶編輯iPhone的時間至3小時才
  5. 用戶丟失硬幣和一些項目

如果當前日期較早然後保存currentdate然後你必須拿硬幣,因爲這是無效的硬幣

我的想法怎麼樣?

相關問題