第1章:自动引用计数总结(一)
1.1 什么是自动引用计数
自动引用计数(ARC,Automatic Reference Counting)是指内存管理中对引用采取自动计数的技术。
1.2 内存管理/引用计数
1.2.2 内存管理的思考方式
- 自己生成的对象,自己持有。
- 非自己生成的对象,自己也能持有。
- 不再需要自己持有的对象时释放。
- 非自己持有的对象无法释放。
对象操作与OC 方法的对应
对象操作 | Objective-C 方法 |
生成并持有对象 | alloc/new/copy/mutableCopy 等方法 |
持有对象 | retain 方法 |
释放对象 | release 方法 |
废弃对象 | dealloc 方法 |
关键点:
有关 OC 内存管理的方法,实际上不包括在该语言中,而是包含在 Cocoa 框架中用于 OS X、iOS 应用开发。CoCoa 框架中 Foundation 框架类库中的 NSObject 担负内存管理的责任。Objective-C 内存管理中的 alloc/retain/release/dealloc 方法分别指代的 NSOject 类的 alloc 类方法、retain 实例方法、release 实例方法、dealloc 实例方法。
自己生成的对象自己持有
使用以下名称开头的方法名意味着自己生成的对象只有自己持有:
- alloc
- new
- copy
- mutableCopy
例如以下名称开头的方法,自己生成并持有对象:
- allocMyObject
- newThatObject
- copyThis
- mutableCopyYourObject
但是对于以下方法则不是,虽然使用 alloc/new/copy/mutableCopy 开头,但是没有采用驼峰命名拼写法:
- allocate
- newer
- copying
- mutableCopyed
不同于 alloc/new ,copy 方法利用基于 NSCopying 方法约定,由各类实现的 copyWithZone: 方法生成并持有对象的副本。与 copy 方法类似,mutableCopy 方法利用基于 NSMutableCopying 方法约定,由各类实现的 mutableCopyWithZone: 方法生成并持有对象的副本。两者的区别在于,copy 方法生成不可变更的对象,而 mutableCopy 方法生成可变更的对象。
非自己生成的对象,自己也能持有
怎么样成为程序员,学习和实践,日积月累...