关于最后一个赋值新闭包破解原来闭包强引用的问题

来源:6-6 Closure中的强引用循环问题

梁华建

2019-01-18 10:05

老师通过赋新值破除了原来self和闭包的强引用 

airCon?.temperatureChange = { newTemperature in

 if newTemperature >= 10 && newTemperature <= 26{

airCon?.temperature = newTemperature

print("New temperature \(newTemperature) is set!")}

else {

print("\(newTemperature) is not a good temperature!")

}

这里新的闭包airCon?.temperature不是调用和改变了实例的属性吗,为什么它没有生成新的强强引用呢??

写回答 关注

1回答

  • AlbertDong
    2019-07-03 01:15:28

    因为是透过 airCon 这个引用变量修改的

玩儿转Swift 2.0(第四季)

Swift泛型、扩展、面向协议编程等,大家真正玩儿转swift

14416 学习 · 25 问题

查看课程

相似问题