美文网首页
2019-12-04

2019-12-04

作者: 红色小星 | 来源:发表于2019-12-04 17:02 被阅读0次

swift 闭包循环引用产生以及处理

class DMDemoViewController: UIViewController {
  //  在Swift中,如果定义一个属性,那么这个属性必须初始化,否则就会报错,如果不想初始化,可以在后面加上?可选类型
  
  var callBackBlock:(()->())?

  override func viewDidLoad() {
      super.viewDidLoad()
      loadData {[weak self] in // [weak self] self 弱引用
//     Swift中尽量不写self,但是闭包中必须写self,因为闭包主要用来保存一段代码,什么时候执行是不确定的,为了防止闭包执行时对象被释放,其必须知道其中的方法和属性属于谁,所以要用self对该对象进行强引用
          // 1.闭包引用self
          self?.view.backgroundColor = UIColor.green
          print("更新UI")
          
      }
      // Do any additional setup after loading the view.
  }
  
  func loadData(callBackBlock:@escaping ()->())  {
      print("执行耗时操作")
//        2.self 引用 闭包
      self.callBackBlock = callBackBlock
      callBackBlock()
      
  }
  deinit {
      print(#file,#line,#function)
  }


}

相关文章

  • 虚表

    title: 虚表date: 2019-12-04 11:07:52categories:- SQLtags:- ...

  • Mr. L 的ScalersTalk第五轮《新概念》朗读持续力训

    2019-12-04, starting at 2019-10-11 新概念英语第二册 Lesson 55: No...

  • 我的tensorflow-gpu安装真实避坑指南

    tensorflow-gpu安装真实避坑指南2019-12-04 我的电脑配置: 微星GL63笔记本 CPU In...

  • 沟通的艺术(17) - 4.2 影响情绪表达的因素

    2019-12-04 4.2 影响情绪表达的因素 一句话总结: 我们因为很多因素,性格、文化、性别、社会习俗等等,...

  • 2019-12-04

    2019-12-04 日精进打卡 姓名:彭新 宁波蓝天白云供应链管理有限公司 【日精进打卡第614天】 【知~学习...

  • 2019-12-05

    2019-12-05周四2019-12-04周三 晚上没有健身2019-12-03周二 晚上连得退2019-12-...

  • 2019-12-04

    2019-12-04 扬州市方圆建筑工程有限公司 377期利他2组 【日精进打卡第597天】 【知~背诵】 《六项...

  • 2019-12-04

    2019-12-04 姓名 :李宏清(单位)扬州市方圆建筑工程有限公司 哈尔滨363期反省二组 【日精进打卡第60...

  • 2019-12-05

    2019-12-04 姓名:何秋兵《六项精进》打卡 ,12月04日 公司:扬州市方圆建筑工程有限公司 第349期 ...

  • 关于城市的困惑

    2019-12-04 钢筋水泥构筑出来一片结界 称为城市 外面的人挤破头想进来 里面的人挤破头只顾去占领高楼 当做...

网友评论

      本文标题:2019-12-04

      本文链接:https://www.haomeiwen.com/subject/rmdkgctx.html