swift学习_闭包

2020-12-30  本文已影响0人  柠檬很开心

用法跟OC的block是一样一样的,基本格式是 { ()->() in }

那么当类的对象持有闭包,闭包的代码块里持有类的对象的时候,必然也会出现循环引用导致对象无法被释放的问题。

在OC中,我们用一个弱指针去持有一个对象,然后在block的代码块里用这个弱指针去解决这个问题,代码如下:

__weak __typeof(&*self)weakSelf = self;

Swift其实也一样,写的更简单一点而已

weak var weakSelf =self

如果是在闭包里用的话,Swift还有种更简单的写法

// 这是一个闭包

{ [weak self] () in

//然后在闭包里直接写 self 就可以了

}

上一篇 下一篇

猜你喜欢

热点阅读