【Objective-C学习笔记】内存管理——ARC自动引用计数
2015-04-12 19:35
351 查看
一、基础简介
1、什么是ARC
Automatic Reference Counting,自动引用计数,即ARC。ARC的出现,减少了很多无意义的重复工作。在工程中使用ARC非常简单:只需要像往常那样编写代码,只不过永远不写retain,release和autorelease三个关键字就好,因为编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你不再需要担心内存管理,因为编译器为你处理了一切。2、ARC工作原理
(1)基本规则
只要没有强指针指向对象,对象所占内存就会被回收(2)强指针和弱指针
1> 强指针 __strong
默认情况下,所有的指针都是强指针,一般都省略Person *p = [Person alloc] init];
2> 弱指针 __weak
__weak Person *p2 = p;
二、使用注意
1、ARC特点
(1)不允许调用release、retain、retainCount(2)允许重写dealloc,但是不允许调用[super dealloc]
2、@property的参数
(1)strong
成员变量是强指针,想长期拥有某个对象@property (nonatomic, strong) Person *person;
(2)weak
成员变量是弱指针,排除长期拥有之外的对象,弱指针不能指向新创建的对象。@property (nonatomic, weak) Dog *dog; __weak Person *p = [Person alloc] init]; // 对象创建出来就会被释放...
(3)assign
用法还和以前一样,适用于非OC对象类型3、循环引用
一端用strong,一端用weak。三、ARC的开启和禁止
(1)使用Xcode自动转换
(2)手动设置某些文件支持ARC
点击项目 --> Build Phases --> Compile Sources,在需要开启ARC的文件后面添加-f-objc-arc(3)手动设置某些文件禁止ARC
点击项目 --> Build Phases --> Compile Sources,在需要禁止ARC的文件后面添加-fno-objc-arc相关文章推荐
- 黑马程序员——Objective-C程序设计(第4版)学习笔记之17-内存管理和自动引用计数——黑马 IOS 技术博客
- 初探swift语言的学习笔记六(ARC-自动引用计数,内存管理)
- swift语言的学习笔记六(ARC-自动引用计数,内存管理)
- swift语言的学习笔记六(ARC-自动引用计数,内存管理)
- 初探swift语言的学习笔记六(ARC-自动引用计数,内存管理)
- IOS开发(16)Objective-C-内存管理-自动引用计数(ARC)
- 初步swift语言学习笔记6(ARC-自己主动引用计数,内存管理)
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第十七章 内存管理和自动计数
- iOS-学习笔记-内存管理 (1)自动引用计数
- Objective - C基础: 第六天 - 1.ARC自动引用计数的基本认识
- 移动开发:iOS内存管理之:引用计数、ARC、自动释放池autoreleasepool和便捷方法之间的关系
- Swift学习笔记16——自动引用计数(Automatic Reference Counting)
- 【2015-10-19】内存管理---深浅拷贝,autorelease,ARC(自动引用计数)
- iOS内存管理之:引用计数、ARC、自动释放池autoreleasepool和便捷方法之间的关系
- swift学习笔记5——其它部分(自动引用计数、错误处理、泛型...)
- iOS内存管理之:引用计数、ARC、自动释放池autoreleasepool和便捷方法之间的关系
- [Objective-C] 从“引用计数”过渡到“自动引用计数”(ARC)
- obj-c编程11:内存管理和ARC(自动引用计数)
- 黑马程序员——OC基础:内存管理和自动引用计数(ARC)
- [Objective-C] iOS 开发中建议使用自动引用计数(ARC)