iPhone开发之深入浅出 (3) — ARC之前世今生
?
前两节我们对 ARC(Automatic Reference Counting) 有了一个基本的理解,但是 ARC 是怎么产生的,为什么苹果要在其最新的 iOS/Mac OS X 上导入该框架? 如果不理解其背后的基本原理,只是死记硬背那些规则/方法,是毫无意义的。就像我们从小接受的填鸭式教育,基本上到后来都还给老师了。
本节,我们先来看看 ARC 产生之前的 Objective-C 内存管理世界,然后再来看看导入 ARC 后,新的 LLVM 编译器在背后为我们做了什么。
Objective-C 内存管理
基本原则内存管理的依循下面的基本原则 - 自己生成的对象,那么既是其持有者
- 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有)
- 如果不想持有对象的时候,必须释放其所有权
- 不能释放已不再持有所有权的对象
结合 Objective-C 语言中的方法,我们来看看基本的内存管理。
initWithObject;不过声明为 -(void) initialize; 是没有问题的。
?
?
- 博主:易飞扬
- 原文链接?:?http://www.yifeiyang.net/development-of-the-iphone-simply-3/
- 自己生成的对象,那么既是其持有者
- 不是自己生成的对象,也可成为其持有者(一个对象可以被多个人持有)
- 如果不想持有对象的时候,必须释放其所有权
- 不能释放已不再持有所有权的对象
结合 Objective-C 语言中的方法,我们来看看基本的内存管理。
initWithObject;不过声明为 -(void) initialize; 是没有问题的。
?
?
- 博主:易飞扬
- 原文链接?:?http://www.yifeiyang.net/development-of-the-iphone-simply-3/