LFH*_*FHS 1 ios appdelegate swift
现在,我正在尝试使用Git中的一个名为Insomnia的类来防止设备在充电时锁定.如果你好奇的话,这个项目就在这里.对于示例代码,它让我这样做:
final class AppDelegate: UIResponder, UIApplicationDelegate {
private let insomnia = Insomnia(mode: .whenCharging)
//app delegate code
}
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它已声明AppDelegate为final使得insomnia变量未被释放,这将阻止它工作.但是,我不确定,这是不好的做法宣布我AppDelegate的final?或者这会导致我的应用程序出现问题吗?如果这是不好的做法,有没有更好的方法来确保insomnia不被解除分配?
你说:
正如您所看到的,它已声明为
AppDelegate,final因此insomnia变量未被释放...
那不是那个final.它只是表示该类不能被子类化(在应用程序委托的情况下,这不太可能是相关的).该final关键字还允许一些优化(如果您有代码调用这些方法中的任何一个,它可以使用静态分派而不是动态分派),在这种情况下不太可能有任何可观察到的影响.
最重要的是,您不必final在此上下文中使用.
"最佳实践"将是final在您需要的地方使用,即类实际上不能或不应该被子类化,或者您真正需要静态调度提供的性能差异.
在回答你的问题时,这是否是一个可以接受的声明的地方insomnia,是的(但final不需要).该AppDelegate应用程序运行时不会被释放,它就是我们通常把"应用程序生命周期"相关的代码.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |