arc与非arc类 在同一工程如何共用~

// 在ARC项目中使用非ARC框架,在非ARC项目中使用ARC框架

在ARC项目中使用非ARC的框架解决方案:

在target里的build phases中,找到compile sources,把涉及到非ARC的类,后面加上: -fno-objc-arc

在非ARC的项目中加入ARC类库:

如何在未使用arc的工程中引入一个使用了arc特性的文件:对相应的文件添加: -fobjc-arc



【前提知识】

ARC:Automatic Reference Counting,自动引用计数

在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。

【问题】

在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有些开源项目用的是 ARC,有的用的是非 ARC。

我在使用 SVProgressHUD 做等待视图时遇到问题,最终发现该项目使用的是 ARC 模式,而我的工程使用的是非 ARC 模式。

怎么办呢?


【解决方案】

Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。

如果你的项目使用的非 ARC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签。

如果你的项目使用的是 ARC 模式,则为非 ARC 模式的代码文件加入 -fno-objc-arc 标签。

添加标签的方法:

  1. 打开:你的target -> Build Phases -> Compile Sources.
  2. 双击对应的 *.m 文件
  3. 在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc
  4. 点击 done 保存

参考:

SVProgressHUD 下载

http://blog.unieagle.net/?p=484

http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project

https://github.com/samvermette/SVProgressHUD/issues/84


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值