我不确定以下代码如何在appdelegate的didFinishLaunchingWithOptions中工作?
[[UIApplication sharedApplication] addObserver: self forKeyPath: @"idleTimerDisabled" options: NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew context: nil];
“ idleTimerDisabled”到底有什么用?
谢谢
答案 0 :(得分:1)
idleTimerDisabled
的Apple文档
此属性的默认值为NO。当大多数应用程序在短时间内没有触摸作为用户输入时,系统会将设备置于屏幕变暗的“睡眠”状态,这是为了节省电量。但是,没有用户输入的应用程序
>加速度计(例如游戏)可以通过将此属性设置为YES来禁用“空闲计时器”来避免系统睡眠。
通过为该值分配true
,当用户不执行任何操作(触摸,按下,滚动等)时,iOS不会使屏幕变暗并锁定iPhone。在游戏与其他普通应用程序中可以找到此示例。游戏使iPhone的唤醒时间比其他应用程序更长。
[[UIApplication sharedApplication] addObserver: forKeyPath: options: context:]
UIApplication.sharedApplication.idleTimerDisabled
或true
分配或更改false
时,您希望收到关于[self observeValueForKeyPath: ofObject: change: context:]
方法签名的分配或更改的调用。
选项NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew
表示,您希望在更改字典中收到有关更改的旧值和新值的更多信息,您可以稍后在观察方法。
有关KVO的更多信息,请通过this post检出NSHipster。
UIApplication.shared.idleTimerDisabled
属性所做的更改的通知,并且您想要访问旧值和新值< / strong>,通过 change 字典。