码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-07-25 16:35:17      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

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

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

标签:

原文地址:http://www.cnblogs.com/songxing10000/p/4676040.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!