LoginSignup
3
3

More than 5 years have passed since last update.

【swift4】 内部ネットワークでの時刻同期に対応する

Posted at

特定の閉ざされたネットワーク環境下で動作させる端末において、iPhone,iPad自体の時刻同期ができず、開発したアプリで正しい時刻で動作させられなくなってしまっていたので、その時の対処法を記載いたします。

事象

閉ざされた環境下で動作するアプリを開発したが、iPad本体の時刻同期がされず徐々に時刻がずれる自体が発生。Single App Modeを使用していたために管理者のみしか時刻を直せない。

対処方法

API通信時にレスポンスとして、サーバ側の時刻をレスポンスとしてもらうように修正。iPad端末との時刻の差分をUserDefaultsに保存し、Date()初期化時に必ず、時刻の差分を追加するようにDateクラスを拡張。
実際に修正したDateクラスが下記になります。

Date+.swift
import Foundation

extension Date {
    init() {
        self = Date(timeIntervalSinceNow: UserDefaults.standard.object(forKey: "TimeInterval") as! Double)
    }
}
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3