Swift解决循环引用

原始闭包代码:

httpTools?.loadData({ (jsonDict : String) in
        self.view.backgroundColor = UIColor.red
        })

方案一

  ###  在闭包前面添加:weak var weakSelf : ViewController? = self
weak var weakSelf : ViewController? = self
        httpTools?.loadData({ (jsonDict : String) in
        weakSelf?.view.backgroundColor = UIColor.red
        })

方案二

    ### self的使用为可选项
httpTools?.loadData({[weak self] (jsonDict : String) in
            self?.view.backgroundColor = UIColor.red
        })

方案三

### [unowned self] ,该方法相当于OC中的(unsafe_unretained)当引用对象被释放的时候会产生野指针
 httpTools?.loadData({[unowned self] (jsonDict : String) in
            self.view.backgroundColor = UIColor.red
        })

推荐阅读更多精彩内容

  • 代孕、弃养,一时间让郑爽瞬间不香了,有录音为证而实锤,就连郑爽的粉丝后援会会长都撤退了,还伤心地哀叹“屋塌了”。 ...
    依诺知否阅读 368评论 1 9
  • 风乍起,秋叶落尽了繁华,我清点着一地的枯黄,敛了一袖的秋思。 夕阳拉长了思念的影子,在我避目不及的余光里牵扯着往事...
    旗木洛卡卡阅读 2,431评论 9 121
  • 见网友的人一般都是比较浪漫而且幼稚的吧。 首先来说,网上见到美女的可能非常低,因为大美女没有时间在网上浪费时间,她...
    鹤舞春风阅读 1,901评论 24 76
  • 中国的彩票假不假我不敢妄下定论,以下是我个人的亲身经历...18年冬天的那个夜晚,我机选了10注双色球,此后的一个...
    我是小潘阅读 3,113评论 28 104
  • 33岁辞职了,本想好好创业大干一场,没想到碰到疫情,创业维艰。 但也还要活下去。找工作吧,想着人到中年,前面已经有...
    鹿比的春天阅读 1,659评论 7 44