Xcode4.2中的release,retainCount, retain“不能”使用的理解和的解决办法
2014-03-28 13:19
435 查看
Automatic Reference Counting (ARC),自动引用计数,是开发Cocoa程序时的一个编译级别的特性,用于自动内存管理。
1:在XCode 4.2中,使用模板新建一个工程,该工程将”默认“选择使用ARC特性
2:对于已经建立好的项目可以 选中项目, Building Settings, 然后找到 Objective C Automatic Reference Counting(找不到,可以搜索到), 设置改为No 就行了.
----ARC理论基础---
ARC的工作原理是,在你编译程序时,将内存操作的代码(retain,release或autorelease)自动添加到需要的位置。即底层上使用和Manual Reference Counting(手工引用计数)一样的内存管理机制,但由于XCode自动帮你在编译时添加内存操作的代码,从而简化了编程的工作。
启用ARC,编译选项中需加上-fobjc-arc,不过这个由XCode在创建工程模板时帮你完成。
XCode 4.2以前版本都不支持ARC。
对操作系统也有要求:Mac OS X v10.6或v10.7 (64-bit applications),iOS4或iOS5。注意:其中Mac OS X v10.6和iOS4不支持weak references(弱引用,后面会说明什么是weak references)。
Xcode 4.2提供了一个名为“Convert to Objective-C Automatic Reference Counting”的工具,在Edit->Convert menu下,可以帮你自动将使用Manual Reference Counting的老代码转换成使用ARC的新代码(例如去掉对retain和release的调用)。
iOS5
xcode4.2 引入了ARC (AutomicReferenceCounting) , 使用xcode4.2 新建项目时,会有一些小小的变化。
NSAutoReleasePool
被 @ {Autoreleasepool / / Code for autoreleasepool } block 取代了。
新增了__strong
, __weak 编译指令。
ios5.0知道你的变量在何时需要release,何时需要autorelease,所以变量不要写成全局的,全局的变量用single去代替。
解决办法:在项目中关闭
ARC 功能,在项目属性中将Object-C Automatic Reference Counting设置为NO即可。否则在编译时,会对 release ,retainCount, retain 等内存相关操作在编译时出现红色警告。
如下图:设置为No即可。
1:在XCode 4.2中,使用模板新建一个工程,该工程将”默认“选择使用ARC特性
2:对于已经建立好的项目可以 选中项目, Building Settings, 然后找到 Objective C Automatic Reference Counting(找不到,可以搜索到), 设置改为No 就行了.
----ARC理论基础---
ARC的工作原理是,在你编译程序时,将内存操作的代码(retain,release或autorelease)自动添加到需要的位置。即底层上使用和Manual Reference Counting(手工引用计数)一样的内存管理机制,但由于XCode自动帮你在编译时添加内存操作的代码,从而简化了编程的工作。
启用ARC,编译选项中需加上-fobjc-arc,不过这个由XCode在创建工程模板时帮你完成。
XCode 4.2以前版本都不支持ARC。
对操作系统也有要求:Mac OS X v10.6或v10.7 (64-bit applications),iOS4或iOS5。注意:其中Mac OS X v10.6和iOS4不支持weak references(弱引用,后面会说明什么是weak references)。
Xcode 4.2提供了一个名为“Convert to Objective-C Automatic Reference Counting”的工具,在Edit->Convert menu下,可以帮你自动将使用Manual Reference Counting的老代码转换成使用ARC的新代码(例如去掉对retain和release的调用)。
iOS5
xcode4.2 引入了ARC (AutomicReferenceCounting) , 使用xcode4.2 新建项目时,会有一些小小的变化。
NSAutoReleasePool
被 @ {Autoreleasepool / / Code for autoreleasepool } block 取代了。
新增了__strong
, __weak 编译指令。
ios5.0知道你的变量在何时需要release,何时需要autorelease,所以变量不要写成全局的,全局的变量用single去代替。
解决办法:在项目中关闭
ARC 功能,在项目属性中将Object-C Automatic Reference Counting设置为NO即可。否则在编译时,会对 release ,retainCount, retain 等内存相关操作在编译时出现红色警告。
如下图:设置为No即可。
相关文章推荐
- Xcode4.2不能使用 release ,retainCount, retain的解决办法
- 关于Xcode4.2中的release“不能”使用的理解
- Xcode 插件因为UUID原因不能使用解决办法
- xcode6.4升级以后Alcatraz不能使用的解决办法
- XCode升级后 ,插件不能使用的解决办法
- VS2012开发.net程序,release版本不能使用Reportviewer的解决办法
- Xcode 8 插件不能使用的解决办法
- Xcode 8 插件不能使用的解决办法
- iOS 学习笔记四 【xcode 7.3 ESJsonFormat-Xcode 插件不能使用的解决办法】
- Xcode升级之后一些插件不能用的解决办法
- iOS9 HTTP 不能正常使用的解决办法
- Visual Assist 过期后重装不能使用的解决办法
- 关于在虚拟机上使用mysql其他主机不能访问的解决办法
- Xcode使用Archive打包,一直在读取iOS Apps,导致速度太慢的解决办法
- iOS9 HTTP 不能正常使用的解决办法
- 不能在 INSERT-EXEC 语句内部使用 ROLLBACK 语句 的解决办法
- Xcode升级8.0后注释快捷键不能使用的解决方法
- IIS8.5关于“ 配置错误 不能在此路径中使用此配置节”的解决办法
- 使用hibernate与mysql时数据不能插入的原因及解决办法
- iOS9 & iOS10 HTTP 不能正常使用的解决办法