十一岁的加重songxing10000…… ------ 回到博主首页

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

看惯了什么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一下

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

 

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

posted @ 2015-07-25 15:45  songxing10000  阅读(779)  评论(0编辑  收藏  举报