苹果文档idleTimerDisabled
此属性的默认值为 NO。当大多数应用程序在短时间内没有用户输入触摸时,系统会将设备置于屏幕变暗的“睡眠”状态。这样做是为了节省电量。但是,没有用户输入的应用程序除了加速度计——例如游戏——可以通过将此属性设置为 YES 来禁用“空闲计时器”来避免系统睡眠。
通过分配true
这个值,当用户没有进行任何操作(触摸、按下、滚动等)时,iOS 不会使屏幕变暗并锁定 iPhone。这方面的例子可以在游戏与其他普通应用程序中找到。与其他应用程序相比,游戏使您的 iPhone 保持清醒的时间要长得多。
For
[[UIApplication sharedApplication] addObserver: forKeyPath: options: context:]
This 是一个
Objective-c 键值观察aka
KVO。
您的代码的意思是,当有人
UIApplication.sharedApplication.idleTimerDisabled
使用任意值分配或更改时,
true
或者false
在这种情况下,您希望收到有关分配或
[self observeValueForKeyPath: ofObject: change: context:]
方法签名更改的调用。
该选项NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
意味着,您希望在更改字典中接收有关更改的旧值和新值的更多信息,您可以稍后在观察方法中访问这些信息。
有关 KVO 的更多信息,请查看 NSHipster的这篇文章。
AppCoda 对此也有很好的解释。
结论
您的代码行的意思是,您希望收到有关 KVO 观察方法中的属性更改的通知,并且您希望通过
更改字典
UIApplication.shared.idleTimerDisabled
访问
旧值和
新值。