iOS 开发,工程中混合使用 ARC 和非ARC-阿里云开发者社区

开发者社区> 牛大林> 正文

iOS 开发,工程中混合使用 ARC 和非ARC

简介: 【前提知识】 ARC:Automatic Reference Counting,自动引用计数 在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 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

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
在Visual Studio中使用MonoTouch开发iOS应用程序(上):环境配置
  前段时间在工作机上装了Mac OS X,这主要是因为我最近需要开发iPhone应用程序。虽然Xcode,Objective C一定是开发iOS应用程序的主流,但是经过一番考虑,我还是决定尝试一下使用MonoTouch进行开发。
1105 0
block使用小结、在arc中使用block、如何防止循环引用(zz)
<div class="articalTag" id="sina_keyword_ad_area" style="width:690px; clear:both; word-break:break-all; line-height:20px; color:rgb(70,70,70); font-family:Verdana,宋体,sans-serif"> <table style="ma
1113 0
iOS开发网络篇—使用ASI框架进行文件下载
iOS开发网络篇—使用ASI框架进行文件下载 说明:本文介绍iOS网络编程中经常用到的框架ASI,如何使用该框架进行文件的下载。 一、简单介绍 代码示例: 1 #import "YYViewController.
658 0
iOS 开发,工程中混合使用 ARC 和非ARC
【前提知识】 ARC:Automatic Reference Counting,自动引用计数 在开发 iOS 3 以及之前的版本的项目时我们要自己负责使用引用计数来管理内存,比如要手动 retain、release、autorelease 等,而在其后的版本可以使用 ARC,让系统自己管理内存。 【问题】 在项目开发过程中我们通常会用到第三方提供的源代码,麻烦的是有些开源项目用
1225 0
oracle 使用 date timestamp 而不使用varchar2()的好处
oracle数据库,表示日期数据基本是date型,只有年月的用varchar2或者char,好处见下: 1、数据规范。date对合法日期型会校验,包括闰年2月这种。避免字符型变量产生的某月32号,日期长度不对,日期格式不统一等问题。曾经有过痛苦经历,面对字符型的2013111这种数据不知道是11月1日还是1月11日,只想说日… 2、检索效率。如果你经常在where后面带这个日期,或者要
1206 0
+关注
45
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载