Xcode 開発で、タイマーを使用したiPhoneアプリを開発すると、期待した動作をしてくれない。既に予定した時間を過ぎているはずだけど・・・。
実装を見直しても???
原因がわかるまで数日経過。
フォアグラウンドで起動して画面ロック等でバックグラウンドに移行して継続処理を行うと、30秒は動作してくれますがそれ以降は、強制休止という状況になります。電池の消耗軽減のため、iOS13以降iPhone仕様でこのようになっているようです。
30秒という制約があったんだ!
30秒程度なら問題ないのですが、2分、3分となると大きな誤差が生じ、アプリ本来の意図と大きく外れてしまいます。そのため、タイマー使用するアプリに関しては、フォアグランド仕様からバックグラウンド仕様で設計する必要があります。3分そのままは、使えないアプリになってしまう。
タイマー機能を、ローカル通知機能に変更してアプリを設計する必要があるようです。