Swift UIApplicationの確立、isIdleTimerDisabledの設定位置
UIApplicationのisIdleTimerDisabledの設定位置を誤って反映出来なかった。
UIApplicationが確立するタイミングがある。
図の①のタイミングではダメ。②のタイミングなら大丈夫。
import SwiftUI @main struct ExampleAutoLockApp: App { var dataModel = DataModel() var body: some Scene { WindowGroup { ContentView() // .environmentObject(self.dataModel) .environmentObject(DataModel()) } } }
import Foundation import UIKit final class DataModel: ObservableObject { init() { print(#function) print("befor UIApplication.shared.isIdleTimerDisabled:\(UIApplication.shared.isIdleTimerDisabled)") UIApplication.shared.isIdleTimerDisabled = !UIApplication.shared.isIdleTimerDisabled print("after UIApplication.shared.isIdleTimerDisabled:\(UIApplication.shared.isIdleTimerDisabled)") } }