看惯了什么tempSelf weakSelf,来点高大的

#define weakify(...) \
    rac_keywordify \
    metamacro_foreach_cxt(rac_weakify_,, __weak, __VA_ARGS__)


#define unsafeify(...) \
    rac_keywordify \
    metamacro_foreach_cxt(rac_weakify_,, __unsafe_unretained, __VA_ARGS__)


#define strongify(...) \
    rac_keywordify \
    _Pragma("clang diagnostic push") \
    _Pragma("clang diagnostic ignored \"-Wshadow\"") \
    metamacro_foreach(rac_strongify_,, __VA_ARGS__) \
    _Pragma("clang diagnostic pop")


#if DEBUG
#define rac_keywordify autoreleasepool {}
#else
#define rac_keywordify try {} @catch (...) {}
#endif

使用方法,进block前wesk一下,进block后strong一下

block中防止循环引用的一个高大上的宏定义

等等,有多个对象要处理这样用

block中防止循环引用的一个高大上的宏定义

 

把名字换下,更具个性,self任意用,赶紧试试吧

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-02
  • 2021-08-11
  • 2021-11-13
  • 2022-02-03
猜你喜欢
  • 2022-02-08
  • 2021-09-10
  • 2022-12-23
  • 2022-12-23
  • 2018-09-29
  • 2022-12-23
相关资源
相似解决方案