如何在ARC项目中使用非ARC的开源框架
2013-06-04 23:24
211 查看
原文地址:http://maniacdev.com/2012/01/easily-get-non-arc-enabled-open-source-libraries-working-in-arc-enabled-projects/
http://twitter.com/share
看本文的标题,相信许多开发者都知道它应该是关于本站的另一教程ARCtutorial and guide page的一个补充。
曾经有许多人来问关于一些开源框架(本站中介绍过)的问题,令人吃惊的是,他们竟然不知道在ARC项目中使用 -fno-objc-arc 标志以禁用ARC。
如果你也使用到这个网站中的开源框架,并且遇到了同样的问题,那么本文将介绍如何让非ARC的库工作在ARC项目中。
通常有两种需要将“ARC”代码和“非ARC”代码混用的情况,我们分别介绍如何在Xcode4中解决它们。
场景 1你有一个非ARC的项目,你想将它重构为ARC项目(使用Xcode的重构功能refactoring),但其中一些代码你不想重构。
要想解决这个问题,在你重构时,反选那些你不想重构的文件即可,Xcode会自动在这些文件上添加-fno-objc-arc 标志。
1.选择Edit->Refactor->Convert to Objective-C ARC 菜单。
2. 在“Select Targets To Convert ”界面,选择target,点击目标名旁边的小箭头,以展开文件列表。
3.选择所有不想重构的文件,右键(ctrl+左键),选择“uncheck-all”,然后进行重构。
正如我在Cocos2D里面所做的,以这种方法很容易就让Cocos2D工作在ARC项目。如下图所示:
![](http://img0.ph.126.net/E5Am533sF6CspSsPwfKCGw==/3893080402985098407.jpg)
场景 2– 你已经有一个ARC项目,想让一些非ARC的代码运行在项目中,或者你想自己重构项目但带有部分非ARC代码。
答案在网络上随处可见。你会问在哪里添加“-fno-objc-arc ”标志?让我来告诉你。
1.打开target的“build phases ”窗口。
2. 将某个.m 文件(你不想ARC的)的compilerflags标志修改为 -fno-obj-arc (点击该文件旁边的compilerflags 栏,然后输入-fno-objc-arc)。这个标志将显示在文件右边,如下图所示:
![](http://img1.ph.126.net/6SAxxuQANtaxOd8qKLnI7Q==/3789497611555568755.jpg)
这样,译器就会知道凡是带有这个标志的文件都不需要ARC。
结论
我不能保证这种方法万无一失,比如某些库(比如带有嵌套项目的库)可能会不正常,但我认为这是很容易实践的一种方法——最近几个月以来本网站上提到的所有比较新的开源库都能在这种方式下工作。
如果你在用-fno-objc-arc标志以框架方式链接这些库时出现问题,请参考这里:templatethat allows you to create
universal frameworks easily 。
http://twitter.com/share
看本文的标题,相信许多开发者都知道它应该是关于本站的另一教程ARCtutorial and guide page的一个补充。
曾经有许多人来问关于一些开源框架(本站中介绍过)的问题,令人吃惊的是,他们竟然不知道在ARC项目中使用 -fno-objc-arc 标志以禁用ARC。
如果你也使用到这个网站中的开源框架,并且遇到了同样的问题,那么本文将介绍如何让非ARC的库工作在ARC项目中。
通常有两种需要将“ARC”代码和“非ARC”代码混用的情况,我们分别介绍如何在Xcode4中解决它们。
场景 1你有一个非ARC的项目,你想将它重构为ARC项目(使用Xcode的重构功能refactoring),但其中一些代码你不想重构。
要想解决这个问题,在你重构时,反选那些你不想重构的文件即可,Xcode会自动在这些文件上添加-fno-objc-arc 标志。
1.选择Edit->Refactor->Convert to Objective-C ARC 菜单。
2. 在“Select Targets To Convert ”界面,选择target,点击目标名旁边的小箭头,以展开文件列表。
3.选择所有不想重构的文件,右键(ctrl+左键),选择“uncheck-all”,然后进行重构。
正如我在Cocos2D里面所做的,以这种方法很容易就让Cocos2D工作在ARC项目。如下图所示:
![](http://img0.ph.126.net/E5Am533sF6CspSsPwfKCGw==/3893080402985098407.jpg)
场景 2– 你已经有一个ARC项目,想让一些非ARC的代码运行在项目中,或者你想自己重构项目但带有部分非ARC代码。
答案在网络上随处可见。你会问在哪里添加“-fno-objc-arc ”标志?让我来告诉你。
1.打开target的“build phases ”窗口。
2. 将某个.m 文件(你不想ARC的)的compilerflags标志修改为 -fno-obj-arc (点击该文件旁边的compilerflags 栏,然后输入-fno-objc-arc)。这个标志将显示在文件右边,如下图所示:
![](http://img1.ph.126.net/6SAxxuQANtaxOd8qKLnI7Q==/3789497611555568755.jpg)
这样,译器就会知道凡是带有这个标志的文件都不需要ARC。
结论
我不能保证这种方法万无一失,比如某些库(比如带有嵌套项目的库)可能会不正常,但我认为这是很容易实践的一种方法——最近几个月以来本网站上提到的所有比较新的开源库都能在这种方式下工作。
如果你在用-fno-objc-arc标志以框架方式链接这些库时出现问题,请参考这里:templatethat allows you to create
universal frameworks easily 。
相关文章推荐
- 如何在ARC项目中使用非ARC的开源框架
- 如何在ARC项目中使用非ARC的开源框架
- 如何使用Github上的android开源项目
- 看《如何正确使用开源项目?》有感
- 如何正确使用开源项目?
- 在真实项目中使用第三方或开源代的代码,组件,中间件,框架的基本规则
- Github使用之Pull Request的正确打开方式(如何在GitHub上贡献开源项目)
- 如何使用github上的开源项目
- UWP项目中EnitityFramework开源框架使用说明(一)
- android 项目中使用到的网络请求框架以及如何配置好接口URL
- 个人开源项目cuteRecorder---录音框架的使用
- 如何使用GreenDroid开源框架
- 项目中如何添加CorePlot开源框架(重温Xcode链接静态库)
- 如何使用github上的android开源项目
- Android Studio该如何导入别人的开源库到自己的项目中并使用库中的控件,网上找过方法但是并不能搞定,希望实际问题 实际解决,拯救我这个傻瓜
- 如何使用开源的WebUI自动化框架Dagger?
- Fresco(Facebook开源的android项目)图片缓存框架的eclipse整合与使用探索(较详细配置说明)
- springmvc框架的项目,如何在controller中使用dao访问数据库
- 项目中如何添加CorePlot开源框架(重温Xcode链接静态库)