转自:http://blog.sina.com.cn/s/blog_976270ec0100wopi.html
在新发布的ios5中,有个很吸引眼球的特性就是“Automatic Reference Counting”,简单来说就是内存自动回收,看起来似乎是平时开发中遇到的各种内存问题的福音,仔细了解了一下,似乎没有那么美好:
1。 需要iOS5才支持
2。 很多引用的类库暂时还不支持.麻烦的是对大多数第三方库需要加禁用arc的编译flag,因为大多都因为兼容性还在使用手动内存管理。
由于 iOS5 xcode4.2 引入了ARC (AutomicReferenceCounting) , 使用xcode4.2 新建项目时,会有一些小小的变化。 NSAutoReleasePool 被 @ {Autoreleasepool / / Code for autoreleasepool } block 取代了。
新增了__strong , __weak 编译指令。
ios5.0知道你的变量在何时需要release,何时需要autorelease,所以变量不要写成全局的,全局的变量用single去代替。
而且当你开启了ARC后, 如果使用传统的手工 release 就是报错 'release' is unavailable: not available in automatic reference counting modeAutomatic Reference Counting forbids explicit message send of 'release'
你可以按照如下方法关闭它
Xcode 4.2: 点击项目后,
Build Settings -> Apple LLVM compiler 3.0 - Language -> Objective-C Automatic Referencing Counting, 默认是YES 设置为NO即可。
[attachment=385]
但实际上 ARC确实比手动释放快,而且不会发生内存泄漏的情况,具体可以参考这里
http://clang.llvm.org/docs/AutomaticReferenceCounting.html
http://stackoverflow.com/questions/6385212/how-does-the-new-automatic-reference-counting-mechanism-work
一篇深入讨论 ARC的文章
http://longweekendmobile.com/2011/09/07/objc-automatic-reference-counting-in-xcode-explained/
分享到:
相关推荐
1. **Objective-C基础**:Objective-C是在C语言基础上扩展的,添加了面向对象特性。它的基础包括类、对象、消息传递等概念。类定义了对象的属性和行为,对象则是类的实例。消息传递是Objective-C的核心,通过`...
### Objective-C 2.0 运行时系统编程指南 #### 概述 Objective-C是一种面向对象的编程语言,它以其独特的动态性而闻名。这种动态性体现在它能够尽可能地将决策过程推迟到运行时执行,而不是在编译或链接阶段。因此...
《Objective-C 2.0程序设计》是一本关于MacOSX系统和iPhone平台下标准程序设计语言Objective-C 2.0的权威参考书。Objective-C是一种面向对象的编程语言,基于C语言设计而成,广泛用于OSX以及多种支持gcc编译器的操作...
《Effective Objective-C 2.0》是一本针对iOS和Mac OS X开发者的经典书籍,它深入探讨了Objective-C编程语言的高效使用方法。这本书由Mattt Thompson撰写,旨在帮助开发者写出更加优雅、可维护和高性能的代码。中文...
《Effective Objective-C 2.0》是一本由Matt Galloway所著的关于Objective-C编程语言的书籍,主要面向开发iOS和OS X应用程序的开发者。这本书详细阐述了如何利用Objective-C 2.0的新特性和最佳实践来提高程序的效率...
Objective-C 2.0 是苹果公司开发的一种面向对象的编程语言,它是基于C语言的,同时引入了Smalltalk的关键概念,如消息传递和动态类型。这个语言主要用于开发iOS和macOS平台的应用程序。《Objective-C 2.0 程序设计》...
本书《Objective-C 2.0编程语言》是苹果公司官方发布的文档,其目的在于为开发者提供关于Objective-C语言的详尽指导。文档提供了一系列关于编程语言的细节,包括语法、类、对象、内存管理以及它在应用程序开发中的...
Objective-C 2.0 运行时系统编程指南详细介绍了Objective-C语言的关键特性之一——运行时系统的工作原理。通过深入学习这些内容,开发者可以更好地理解Objective-C是如何在运行时解决各种问题的,从而有效地利用这些...
《Effective Objective-C 2.0》是一本由Mattt Thompson编著的面向Objective-C程序员的指南书籍,旨在帮助开发者写出更高效、更可靠、更具可维护性的代码。这本书深入探讨了Objective-C编程语言的最佳实践和设计模式...
Objective-C 2.0是一种强大的面向对象编程语言,主要用于苹果的iOS和macOS平台开发。它是C语言的一个超集,融入了Smalltalk的关键特性,如消息传递和动态类型。本篇将深入探讨Objective-C 2.0的核心概念,并基于提供...
Objective-C 2.0程序设计
OBJECTIVE-C 2.0程序设计,全网最清晰版本
Objective-C2.0是苹果公司开发的一种面向对象的编程语言,它是C语言的超集,融合了Smalltalk的动态特性,广泛应用于iOS和Mac OS X操作系统。本资料集中的"Objective-C2.0程序设计习题官方答案"显然是针对学习...
"Effective Objective-C 2.0&Obj-C高级编程"这个压缩包文件包含了关于这个语言的深入学习资料,旨在帮助开发者提升他们的编程技能和理解。下面我们将详细探讨其中涉及的一些关键知识点。 1. **内存管理**: - ...
### 关于Objective-C 2.0编程语言的关键知识点 #### 一、Objective-C 2.0简介 Objective-C 2.0是一种通用的面向对象的编程语言,它是在早期版本的基础上进行了一系列重大改进的结果。Objective-C 2.0是苹果公司...
### Objective-C 2.0 运行时系统编程指南知识点详解 #### 概述 Objective-C 2.0 的运行时系统是该语言的核心组成部分之一,它负责在程序执行过程中处理许多关键操作,如方法调用、类信息的管理、消息转发等。深入...