【发布时间】:2019-12-19 10:45:07
【问题描述】:
我在 iOS 中工作,我有一个自定义视图,
class MyView: UIView {
}
我的一个ViewControllers 正在使用自定义视图,例如,
class MyViewController: UIViewController {
viewDidLoad(){
let view = MyView() // ...
}
}
我的自定义视图 MyView 需要观察通知,因此我已将其添加到 MyView's init 中并在 dealoc 块中删除,例如,
class MyView: UIView {
init() {
addObserver(...)
}
dealloc {
removeObserver(...)
}
}
我的一位同事评论说,视图不应该负责处理观察者,而是关联的ViewControllers 应该处理它。我的设计有问题吗?如果我按照目前的设计,我将来可能会面临哪些问题?
【问题讨论】:
-
我的一个注释:“如果您的应用程序面向 iOS 9.0 及更高版本或 macOS 10.11 及更高版本,则无需在其 dealloc 方法中取消注册观察者”from here
标签: ios swift design-patterns uiview uiviewcontroller