我有一個應用程序,需要我在一段時間後採取行動。例如,如果用戶在幾個星期內還沒有進入應用程序,那麼當用戶最終啓動應用程序時,我必須要求他們在安裝此應用程序時爲其提供特殊代碼。 (這是一個內部的應用程序,我被要求這樣做是出於安全考慮)iphone sdk系統時間vs用戶時間
我正在使用[NSDate date]方法檢索用戶登錄並將其保存到數據庫中的日期。我比較下次打開應用程序時的這個保存日期,看看它們上次登錄後的時間。問題在於[NSDate date]給出了時間設置的時間,用戶可以在本機設置應用程序中手動更改時間設置。正如你可能會說的那樣,這會給我的情況帶來很多問題。如果假設用戶在不活動3周後放入特殊代碼,他可以通過修改本機設置應用程序中的時間來顯示此屏幕,或者更糟糕的是,通過將時間設置爲上一個日期這將在他活動的3周內完成。
有沒有辦法讓「系統時間」而不是「用戶時間」?我查看了mach_absolute_time(),但是在設備重啓之後會重置。由於不活動的時間我會比較相當大,那麼設備將有可能重新啓動。我也想過使用網絡連接從應用程序之外的服務器獲取時間,但很多用戶在使用iPad時無法訪問WiFi。如果我找不到其他東西,那將是我最後的解決方案。由於它們在使用過程中的位置,我正嘗試使用設備本身的所有內容。
我可以忽略這裏簡單的東西嗎?這似乎太簡單的問題沒有答案。請引導我走向正確的方向。先謝謝你。
問題是網絡將無法一直使用。我不想依賴外部信息。不知何故蘋果能夠找出正確的時間,即使在飛機模式下,重新啓動設備等等。 – Bittu 2011-08-10 16:55:33