当前位置: 移动技术网 > 移动技术>移动开发>IOS > IOS 避免self循环引用的方法的实例详解

IOS 避免self循环引用的方法的实例详解

2019年07月24日  | 移动技术网移动技术  | 我要评论

ios 避免self循环引用的方法的实例详解

示例代码:

// - weak & strong 
#define myweakify(var) \ 
try {} @finally {} \ 
__weak __typeof__(var) var##_myweak_ = (var) 
 
#define mystrongify(var) \ 
try {} @finally {} \ 
__strong __typeof__(var) var = var##_myweak_ 
 
#define mystrongifyretvifnil(var, ret) \ 
try {} @finally {} \ 
__strong __typeof__(var) var = var##_myweak_;\ 
if(var == nil) return ret 
 
#define mystrongifyretnifnil(var) \ 
try {} @finally {} \ 
__strong __typeof__(var) var = var##_myweak_;\ 
if(var == nil) return 

使用如下:

- (void)handlefromvc 
{ 
  nsarray *viewcontrollers = self.navigationcontroller.viewcontrollers; 
  @myweakify(self); 
  [viewcontrollers enumerateobjectswithoptions:nsenumerationreverse usingblock:^(id _nonnull obj, nsuinteger idx, bool * _nonnull stop) { 
    @mystrongifyretnifnil(self); 
    //代码 
  }]; 
} 

如有疑问请留言或到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网