避免使用委托方法的编程策略
创始人
2024-12-16 18:00:12
0

使用闭包替代委托方法

在使用Objective-C或Swift编写iOS应用程序时,常常需要使用委托模式来实现视图控制器之间的通信。然而,使用委托方法会导致代码重复和可读性问题,解决方法是使用闭包来替代委托方法。

例如,下面是一个使用委托方法来实现视图控制器之间通信的示例代码:

protocol SomeDelegate {
  func didSomething()
}

class ViewController: UIViewController {
  var delegate: SomeDelegate?
  
  func doSomething() {
    // Do something
    self.delegate?.didSomething()
  }
}

class OtherViewController: UIViewController, SomeDelegate {
  override func viewDidLoad() {
    super.viewDidLoad()
    let viewController = ViewController()
    viewController.delegate = self
  }
  
  func didSomething() {
    // Handle did something
  }
}

使用闭包来替代委托方法的写法如下:

class ViewController: UIViewController {
  var didSomethingHandler: (() -> Void)?
  
  func doSomething() {
    // Do something
    self.didSomethingHandler?()
  }
}

class OtherViewController: UIViewController {
  override func viewDidLoad() {
    super.viewDidLoad()
    let viewController = ViewController()
    viewController.didSomethingHandler = {
      // Handle did something
    }
  }
}

使用闭包比使用委托方法更简洁且易于阅读。

相关内容

热门资讯

外挂手册!德普之星透视辅助插件... 外挂手册!德普之星透视辅助插件,sohoo竞技联盟辅助器-真是真的是有辅助插件(哔哩哔哩)1、完成s...
外挂技法!悦扑克脚本,佛手大菠... 外挂技法!悦扑克脚本,佛手大菠萝辅助-果然真的是有辅助教程(哔哩哔哩)1)佛手大菠萝辅助有没有挂:进...
外挂妙招!德普之星app安卓版... 外挂妙招!德普之星app安卓版破解版,智星菠萝可以辅助吗-果然是有辅助app(哔哩哔哩)暗藏猫腻,小...
外挂办法!poker worl... 外挂办法!poker world辅助,哈糖大菠萝万能挂-原来一直总是有辅助插件(哔哩哔哩);1、任何...
外挂办法!xpoker辅助,p... 外挂办法!xpoker辅助,pokerrrr2辅助-其实是有辅助软件(哔哩哔哩)1、pokerrrr...
外挂积累!poker mast... 外挂积累!poker master辅助,xpoker辅助工具-本来是有辅助技巧(哔哩哔哩)一、pok...
外挂课程!约局吧德州可以透视吗... 外挂课程!约局吧德州可以透视吗,德普之星怎么设置埋牌-本来一直总是有辅助技巧(哔哩哔哩)1、该软件可...
外挂模块!德普之星有辅助软件吗... 外挂模块!德普之星有辅助软件吗,pokerworld软件-竟然有辅助插件(哔哩哔哩)1、下载好pok...
外挂技法!红龙poker作必弊... 外挂技法!红龙poker作必弊指令,德普之星透视软件免费入口官网-真是是真的有辅助攻略(哔哩哔哩)1...
外挂方式!智星德州插件2024... 外挂方式!智星德州插件2024最新版,拱趴大菠萝万能挂图解-切实真的有辅助教程(哔哩哔哩)1、外挂方...