您的位置:首页 > 其它

iPhone ARC 宏定义

2013-05-16 10:45 155 查看
有时我们写个代码开源出来给别人用时,会被其他开发者抱怨编译不了,很多情况是版本的问题,尤其现在ARC的出现后关于weak,strong的问题让人头疼。

有个开源代码这里做的很不错,就是MBProgressHUD

看下他是怎么做的:

#ifndef MB_STRONG

#if __has_feature(objc_arc)

    #define MB_STRONG strong

#else

    #define MB_STRONG retain

#endif

#endif

#ifndef MB_WEAK

#if __has_feature(objc_arc_weak)

    #define MB_WEAK weak

#elif __has_feature(objc_arc)

    #define MB_WEAK unsafe_unretained

#else

    #define MB_WEAK assign

#endif

#endif

非ARC的retain,相当于ARC的strong

iOS5的ARC中weak能在销毁时自动赋值nil,这是iOS4.x上使用ARC不具备,所以用的unsafe,非ARC自然是assign
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: