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); //代码 }]; }
如有疑问请留言或到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!
如对本文有疑问, 点击进行留言回复!!
APP调用微信小程序,能拉起小程序,但是onResp回调不会被调用问题
Codeforces Round #657 (Div. 2) B. Dubious Cyrpto(思维,数学)
网友评论