我应该不在 viewDidLoad 中使用 UIButton 的 addTarget

Dev*_*der 2 uibutton ios swift addtarget

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

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

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

Moj*_*ini 8

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


个人更喜欢在开始时设置所有 UI 组件:

lazy var btnAccount: UIButton = {
    let btn = UIButton

    // setup button's appearance

    btn.addTarget(self, action: #selector(Accounts(_:)), for: .touchUpInside)
    return btn
}()
Run Code Online (Sandbox Code Playgroud)

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