【发布时间】:2019-02-05 17:35:41
【问题描述】:
我使用的 API 建议将其客户端保留在应用委托中并通过那里访问它。如果我扩展 UIViewController 以更轻松地访问应用程序委托,这是否是反模式?
extension UIViewController {
var appDelegate: AppDelegate {
return UIApplication.shared.delegate as! AppDelegate
}
}
class SomeViewController: UIViewController {
...
appDelegate.someClient.someMethod()
...
}
通过反模式,我的意思是为了这个简单的方便而扩展整个 UIViewController 类是否过分?总体而言,像这样扩展课程是否有任何负面影响?是否每个视图控制器,即使它不访问 API,现在都隐式指向应用委托?
【问题讨论】:
-
“一种建议将其客户端保留在应用程序委托中的 API” 听起来好像一种不好的做法已经被强加给你了......
-
@JoshCaswell 我不明白为什么。这是在应用程序的整个生命周期中持久保留任何需要可靠持久的东西的正确方法。 CLLocationManager 和 CMMotionManager 是常见的用例。
标签: ios cocoa-touch appdelegate object-graph