@strongify@weakify

2016-07-07  本文已影响50人  冲上云霄90

@strongify以及@weakify宏命令的使用场景和原理

主要是在block中使用

(因为block一般都在对象内部声明.. 如果在block内部使用了当前对象的属性,就会造成循环引用(block拥有当前对象的地址,而当前对象拥有block的地址),而引起内存泄露,block和当前对象都无法释放.)

大概相当于

 __weak  typeof(self) weakSelf = self;
block = ^(){
    __strong  typeof(weakSelf)strongSelf = weakSelf;
    // strongSelf.property
};
上一篇下一篇

猜你喜欢

热点阅读