質問: iPhone のネイティブApp のタイマーのように遷移しても携帯を閉じてもバックグラウンドでカウントダウンしていてほしいのですがどうしたら良いでしょうか。 UserDefaultを使用してみたのですが思うようにうまくいきませんでした。
回答: こんにちは。 そもそもの作りとして、タイマー発火時にカウントアップする方法は、タイマーの精度に影響を受けるため、正確性に欠けます(よく練習問題などでこの手の作り方が紹介されますが、その方法は間違っています)。 そのため、スタートした日時をメンバ変数等に保持(1)、タイマーで画面を適当な間隔で更新するときに、 **現在日時-1の日時**として差分をとり、経過時間を算出してください。 これであればバックグラウンドでタイマーが動かなくても、アプリを復帰したときに正しく経過時間が出るはずです。