有时我们写个代码开源出来给别人用时,会被其他开发者抱怨编译不了,很多情况是版本的问题,尤其现在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

转载于:https://www.cnblogs.com/zsw-1993/archive/2013/05/16/4880067.html

iPhone ARC 宏定义相关推荐

  1. iOS日常工作之常用宏定义大全

    前言: 在工作中, 很多小伙伴都会在PCH文件定义一些常用的宏,但是又怕写这些简单的宏浪费时间,又有时候忘记怎么定义了怎么办?本人在工作中也是如此.所以在这里给大家分享一些常用的宏定义,喜欢的小伙伴可 ...

  2. iOS常用宏定义大全

    宏定义与常量的区别 宏:只是在预处理器里进行文本替换,不做任何类型检查,宏能定义代码,const不能,多个宏编译时间相对较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间. 所以在使用 ...

  3. (转)iOS 常用宏定义

    #ifndef MacroDefinition_h #define MacroDefinition_h //-------------------获取设备大小--------------------- ...

  4. 常用到的宏定义!!!!!

    // 1.判断是否为iOS7 #define iOS7 ([[UIDevice currentDevice].systemVersion doubleValue] >= 7.0) // 2.获得 ...

  5. iOS - 常用宏定义

    iOS中的常用宏定义 此篇博客为博主转载经典文章,非常感谢原创的优秀资源! 为方便常看和使用,在此我将原文中的宏定义在此以代码片形式展示出来,具体内容如下: #ifndef MacroDefiniti ...

  6. objective-c宏定义

    1.先来几个常用的: [csharp] view plaincopy // 是否高清屏 #define isRetina ([UIScreen instancesRespondToSelector:@ ...

  7. Unity中的宏定义

    宏定义的使用场合: 在程序中我们想要根据不同的运行环境去执行不同的代码时使用.比如我们在PC上和安卓上需要执行不同的代码,我们就可以使用Unity自带的宏定义来区分. Unity中自带的宏定义: UN ...

  8. unity android 宏定义,Unity各平台内置宏定义

    属性 方法 UNITY_EDITOR #define directive for calling Unity Editor scripts from your game code. UNITY_EDI ...

  9. OC Extension OveralHeader(常用屏幕尺寸数据 宏定义) 常量

    一直觉得自己写的不是技术,而是情怀,一个个的教程是自己这一路走来的痕迹.靠专业技能的成功是最具可复制性的,希望我的这条路能让你们少走弯路,希望我能帮你们抹去知识的蒙尘,希望我能帮你们理清知识的脉络,希 ...

最新文章

  1. PTA团体程序设计天梯赛-L2-021 点赞狂魔
  2. 通过代码动态创建Windows服务
  3. python执行系统命令的方法
  4. 点击button时候传递一个参数实现局部刷星_Tkinter的一个小小的规则,如果不了解,可能不会解决掉这个问题...
  5. 小程序生成海报 详解
  6. html制作圆盘时钟,jquery+html5制作超酷的圆盘时钟表
  7. OllyDBG 入门系列(二)-字串参考
  8. HDU-3374 String Problem (最小表示法)
  9. 计算机软件技术信息安全哪个好,国内哪个大学的计算机安全专业最好?
  10. 如何生成SSH KEY及查看SSH KEY
  11. 小团队管理核心(一)
  12. 4宫格 android,四宫格拼图软件
  13. php有个schost.exe_window_XP主要15个系统进程,  1.svchost.exe    进程文 - phpStudy...
  14. 1548 A Simple Problem with Integers
  15. 基于麦克风阵列的声源定位算法之GCC-PHAT
  16. 学《何以》五招收服女友心
  17. bat 发送http请求
  18. 江东子弟今犹在,不见霸王卷土来-------重启编程记录征程之序
  19. python3笔记_Python3学习笔记(四)
  20. SpringMVC简易的程序以及基本原理

热门文章

  1. 深度学习的实用层面 —— 1.3 机器学习基础
  2. 【什么是数据隐私?安全与隐私的区别?】差分隐私代码实现系列(一)
  3. 关于OpenCV的那些事——相机姿态更新
  4. 摄影测量--内外方位元素
  5. 计算机辅助语言和语言学关系,西方语言学与多媒体计算机辅助语言学习_王艳萍...
  6. Java7并发编程指南——第八章:测试并发应用程序
  7. Linux学习笔记10
  8. P2872 [USACO07DEC]Building Roads S(最小生成树)
  9. h0152. 故事计算题(计蒜客——西邮K题)解析
  10. 【编撰】linux IPC 001 - 概述