IOS 避免self循环引用的方法的实例详解
程序员文章站
2023-12-18 15:08:04
ios 避免self循环引用的方法的实例详解
示例代码:
// - weak & strong
#define myweakify(var) \
try...
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); //代码 }]; }
如有疑问请留言或到本站社区交流讨论,感谢阅读,希望通过本文能帮助到大家,谢谢大家对本站的支持!