有些遊戲的某些動作與時間相關。例如,如果他玩過遊戲,每24小時用戶可獲得一筆積分......在我們關閉手機並在幾小時後回來後,計時器被正確設置。實現持久倒數計時器
這是如何完成的?必須有一些方法將當前時間寫入永久存儲器,然後從中讀取數據?
我只是猜測它是這樣的:
NSDate * now = [NSDate date];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"HH:mm:ss"];
NSString *newDateString = [outputFormatter stringFromDate:now];
然後就是其中newDateString被寫入持久存儲部分。
另外,如果這是一種方法,如果用戶在他的設備上手動更改時間會發生什麼?我們可以依靠這個還是有其他一些方法來追蹤遊戲中某些時刻之間的真實時間?
也許定時器鏈接到服務器上的時鐘? – mti2935 2015-02-11 21:10:11
我明白。但是,例如,如果沒有服務器,這是如何完成的?我已經在離線模式下玩過遊戲(也關閉了iCloud)並且定時器仍然有效......我不確定遊戲是依靠服務器時間還是系統時間來設置的...... – Whirlwind 2015-02-11 21:14:51
將開始時間寫入NSUserDefaults當遊戲再次變爲活動時,處理時間已過。爲了防止用戶在設備上弄亂時間,您可能必須與服務器通信才能獲得準確的時間。 – sangony 2015-02-11 21:15:50