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)")
    }
}

SwiftSwift

Posted by shi-n