JoshPell

人生只有必然,没有偶然

欢迎来到我的个人网站~


block中weakSelf和strongSelf的简化

我们知道在block中使用全局变量需要考虑到循环引用问题,这时就会引入weakSelf和strongSelf,具体用法不多说,网上很多介绍的文章,比如深入研究Block用weakSelf、strongSelf、@weakify、@strongify解决循环引用 但是频繁的书写weakSelf和strongSelf会让人觉得代码重复,但是这个东西又不好抽取。经过多方打探,找到一个特别简便的方法,你不用再考虑weakSelf和strongSelf的书写,直接使用self代替即可。在文件中加入下面的宏即可。

#define weakify(...) \
    ext_keywordify \
    metamacro_foreach_cxt(ext_weakify_,, __weak, __VA_ARGS__)
#define strongify(...) \
    ext_keywordify \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Wshadow\"") \
    metamacro_foreach(ext_strongify_,, __VA_ARGS__) \
    _Pragma("clang diagnostic pop")

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by 谭健,分享从这里开始,精彩与您同在


正在加载中……