189 8069 5689

XCode:兼容ARC和non-ARC-创新互联

Objective-C引入ARC(Automatic Reference Counting)后,我们经常会面对这样一种困境:自己的项目使用了ARC,却发现要使用的第三方类库是non-ARC的;又或者自己的项目是non-ARC的,但是想使用一个ARC的第三方类库。 这个时候就有点左右为难了,不知道该让non-ARC迁就ARC,还是让ARC迁就non-ARC。XCode:兼容ARC和non-
ARC

网上有一些做法可以解决这个问题:1.将自己的ARC项目转换成non-ARC项目。 2.或者将第三方类库编译成framework的形式。

创新互联建站于2013年成立,是专业互联网技术服务公司,拥有项目做网站、网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元施秉做网站,已为上家服务,为施秉各地企业和个人服务,联系电话:18980820575

这些做法都太麻烦了,其实我们只需要在XCode中设置源代码的Compiler Flags就能让ARC和non-ARC文件共存。
点击Project->Targets->Build Phases标签->展开Compile Sources,双击某个.m文件的文件名,然后加上“-fno-objc-arc”这个标记,就可以指定此.m文件按照non-ARC方式编译。对应的如果加上“-fobjc-arc”标记,就可以指定.m文件按照ARC方式编译。

///////////////////////////

另外还有一个很有用的技巧:在源代码中用__has_feature来判断是否是ARC或者non-ARC。
如以下代码,如果此代码的源文件不是按照ARC方式编译,就会报错。

#if ! __has_feature(objc_arc)
#error This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
#endif
文章名称:XCode:兼容ARC和non-ARC-创新互联
文章起源:http://cdxtjz.com/article/cdcdse.html

其他资讯