xcode中使用ARC问题
来源:互联网 发布:京东有类似淘宝联盟 编辑:程序博客网 时间:2024/06/11 05:59
解决方案一:
那么在xCode中经常需要导入一些外来的代码文件,如果导入的文件使用了ARC机制而你的当前项目没有使用ARC,那么xCode会给出警告,或者报错。我们该如何处理这些问题呢:
点击项目导航文件--> 选中Targets--> 选择 Build Phases --> 展开Compile Sources
这个时候,我们看到第二列的名称为:Compiler Flags
双击你所要使用ARC的文件,并输入 -fobjc-arc,
那么现在这个文件就可以在编译时使用ARC机制进行编译了。
同上,如果想让使用ARC机制的代码不使用ARC机制,只需要输入 -fno-objc-arc
解决方案二:
就是我们在工程中会有很多的共通的lib包要导入,但是有些工程是支持ARC,有些工程是不支持ARC的,这个时候就需要分别对应了,昨天和一个日本人讨论一番,在iOS4.3中用ARC,支持是支持不过好像有问题,我举反对他举赞成,最后找了个网上的资料,否决了,今天无意中看一段github上的code,发现原来是可控的。
上一段代码先
#if !__has_feature(objc_arc)
[request autorelease];
#endif
看代码大概能猜出个12345,不过还是上网找了资料,结果就找到了一个github中ARC Helper的开源代码(现在意见习惯性的搜索github找解决方案了)
说实话每次都按照上面的代码写得话不是一般得烦,有了这个ARC Helper宏(参照:iOS开发中使用宏定义提高开发效率),写起来便利多了。
贴下代码,具体也可参照github的ARC HELPER
// // ARC Helper // // Version 1.2.2 // // Created by Nick Lockwood on 05/01/2012. // Copyright 2012 Charcoal Design // // Distributed under the permissive zlib license // Get the latest version from here: // // https://gist.github.com/1563325 // #ifndef AH_RETAIN #if __has_feature(objc_arc) #define AH_RETAIN(x) (x) #define AH_RELEASE(x) (void)(x) #define AH_AUTORELEASE(x) (x) #define AH_SUPER_DEALLOC (void)(0) #else #define __AH_WEAK #define AH_WEAK assign #define AH_RETAIN(x) [(x) retain] #define AH_RELEASE(x) [(x) release] #define AH_AUTORELEASE(x) [(x) autorelease] #define AH_SUPER_DEALLOC [super dealloc] #endif #endif // Weak reference support #ifndef AH_WEAK #if defined __IPHONE_OS_VERSION_MIN_REQUIRED #if __IPHONE_OS_VERSION_MIN_REQUIRED > __IPHONE_4_3 #define __AH_WEAK __weak #define AH_WEAK weak #else #define __AH_WEAK __unsafe_unretained #define AH_WEAK unsafe_unretained #endif #elif defined __MAC_OS_X_VERSION_MIN_REQUIRED #if __MAC_OS_X_VERSION_MIN_REQUIRED > __MAC_10_6 #define __AH_WEAK __weak #define AH_WEAK weak #else #define __AH_WEAK __unsafe_unretained #define AH_WEAK unsafe_unretained #endif #endif #endif // ARC Helper ends- xcode中使用ARC问题
- XCode中ARC
- Xcode中禁用单个类文件不使用ARC
- Xcode 项目中我们可以使用 ARC 和非 ARC 的混合模式。
- Xcode中彻底关闭ARC
- Xcode中如何关闭ARC
- Xcode非ARC项目转ARC,ARC项目中支持非ARC也就是共存
- Xcode非ARC项目中设置部分文件ARC支持
- Xcode非ARC项目中设置部分文件ARC支持
- xcode中混用arc和非arc模式
- Xcode非ARC项目中设置部分文件ARC支持
- Xcode非ARC项目中设置部分文件ARC支持
- XCode工程中ARC模式与非ARC模式共用
- Xcode非ARC项目中设置部分文件ARC支持
- Xcode非ARC项目中设置部分文件ARC支持
- xcode中arc与非arc之间的转换
- xcode中混用arc和非arc模式
- xcode中混用arc和非arc模式
- 板级设备初始化
- NYOJ 88 汉诺塔(一)
- 算法笔记整理
- poj 1005 I Think I Need a Houseboat
- Cocoa Touch事件处理流程--响应者链
- xcode中使用ARC问题
- Java 随机数生成 Random
- Java 的封装、继承与多态的理解
- c++获取整型变量的最小/最大值
- Linux互斥锁、条件变量和信号量
- Android开源项目第一篇——个性化控件(View)篇
- Activity-LauncherMode配置(4)
- Android字符串资源
- linux常用命令详解