你有幾個選項可供你保存這樣的數字 - 絕對最簡單和最快可能只是使用UserDefaults
來存儲/檢索數字。這並不完全是UserDefaults
的預期用途,但如果您只是存儲一個TimeInterval
,它不會導致任何問題。
裸露的骨頭實現應該是這樣的:
let interval: TimeInterval = 20 //replace with the time from your countdown timer
UserDefaults.standard.set(interval, forKey: "totalTimeElapsed")
既然你需要將新時間添加到現有經過的時間,你會做這樣的事情:
let newTimeElapsed: TimeInterval = 20 //replace with time from countdown timer
let totalSoFar = UserDefaults.standard.double(forKey: "totalTimeElapsed") //will be 0 if it doesn't exist
UserDefaults.standard.set(newTimeElapsed + totalSoFar, forKey: "totalTimeElapsed")
其他標準的方法,你可以做到這一點將是NSKeyedArchiver
或Core Data
,但Core Data
將持續1號碼的主要矯枉過正。
您是否希望在應用程序啓動時堅持這一點? – brandonscript
當用戶背景/殺死應用程序/關閉設備時,您應該考慮是否經過了「邏輯時間」。定時器要小心,因爲它們*不能保證*經過的時間量。用戶也可以修改設備時間設置。 –
嗨brandon,是的,我希望這堅持跨應用程序啓動。 – Trlewi