2

我的前辈正在审查我的代码,他发现我使用了这样的 UIButton addTarget 方法

override func viewDidLoad() {
    super.viewDidLoad()
    self.btnAccount.addTarget(self, action: #selector(Accounts(_:)), for: .touchUpInside) 
  }

现在他说你不应该使用 addTargetviewDidLoad加载视图控制器需要时间(我没有得到它的内存管理的东西)但我没有发现它相关这就是为什么我问这个问题我做了我应该总是采取行动吗?

4

1 回答 1

8

我没有听说过,即使这是真的,你也不应该尝试对你的应用进行过早的优化。UIButton是一个UIControl对象,它遵循事件侦听器模式,通常使用NSDictionary目标(“aka”侦听器或观察器)的哈希图(在 Objective-C 中)实现,并且它不是非常耗时的操作。


个人更喜欢一开始就设置所有 UI 组件:

lazy var btnAccount: UIButton = {
    let btn = UIButton

    // setup button's appearance

    btn.addTarget(self, action: #selector(Accounts(_:)), for: .touchUpInside)
    return btn
}()

PS请向他询问事实的来源并告诉我。

于 2020-05-17T07:12:38.897 回答