(转)iOS 开发,工程中混合使用 ARC 和非ARC
2015-09-06 14:13
603 查看
【前提知识】
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 标签。
添加标签的方法:
打开:你的target -> Build Phases -> Compile Sources.
双击对应的 *.m 文件
在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc
点击 done 保存
参考:
SVProgressHUD 下载
http://blog.unieagle.net/?p=484 href="http://code4app.com/ios/SVProgressHUD/4fc5c2496803faa60b000001" target=_blank>
http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project href="http://code4app.com/ios/SVProgressHUD/4fc5c2496803faa60b000001" target=_blank>
https://github.com/samvermette/SVProgressHUD/issues/84
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 标签。
添加标签的方法:
打开:你的target -> Build Phases -> Compile Sources.
双击对应的 *.m 文件
在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc
点击 done 保存
参考:
SVProgressHUD 下载
http://blog.unieagle.net/?p=484 href="http://code4app.com/ios/SVProgressHUD/4fc5c2496803faa60b000001" target=_blank>
http://stackoverflow.com/questions/6646052/how-can-i-disable-arc-for-a-single-file-in-a-project href="http://code4app.com/ios/SVProgressHUD/4fc5c2496803faa60b000001" target=_blank>
https://github.com/samvermette/SVProgressHUD/issues/84
相关文章推荐
- iOS学习之XMPP框架导入与在workSpace下多工程联编
- iOS开发动态计算cell的高度
- iOS7之定制View Controller切换效果
- 设备唯一识别IDFA的构建与保证二次安装唯一性(ios自学笔记)
- iOS 响应者链条
- iOS常见图片缓冲策略
- ioS开发之多线程-- 第三方库SDWebImage
- iOS开发之多线程-- NSOperation使用简介(个人笔记)
- 『iOS/Obj-C』V2EX iOS 客户端源码读书笔记
- iOS时间戳与标准时间转换
- iOS: El Capitan Beta 下 Xcode6.4 不显示Scheme菜单
- iOS - 正则表达式判断邮箱,身份证,手机,车牌号...验证是否正确
- 在iOS中修改状态栏字体的颜色
- iOS textField详细解析(转)
- iOS使用Charles(青花瓷)抓包并篡改返回数据图文详解
- iOS 高斯模糊效果
- iOS各种权限判断(相机,相册,定位,录音)
- IOS Block使用(一)
- 转战IOS之: tableview 选中一行后,不显示选中颜色的方法
- IOS版大转盘