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

时间:2023-03-08 21:29:01

看惯了什么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任意用,赶紧试试吧

相关文章