先看我的结论:
1. 值捕获时间不一致。OC是在block申明的时候将需要的对象指针压栈进block的栈区。SWIFT 则是在闭包执行的时候捕获值。
2.在OC中需要申明__block 才能在block 中修改。而SWIFT 则默认实现了__block效果。
3.如果在Swift 中如此则是类似OC将对象提前压栈
![](https://img.haomeiwen.com/i1744939/def6e8efbf54c588.jpg)
先看我的结论:
1. 值捕获时间不一致。OC是在block申明的时候将需要的对象指针压栈进block的栈区。SWIFT 则是在闭包执行的时候捕获值。
2.在OC中需要申明__block 才能在block 中修改。而SWIFT 则默认实现了__block效果。
3.如果在Swift 中如此则是类似OC将对象提前压栈
本文标题:关于OC中block 和 swift 闭包差异
本文链接:https://www.haomeiwen.com/subject/qdqgvltx.html
网友评论