------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
1、指针分类
(1)强指针:默认的情况下,所有的指针都是强指针,关键字strong
(2)弱指针:__weak关键字修饰的指针
声明一个弱指针如下:__weak Person *p;
2、什么是ARC?
Automatic Reference Counting,自动引用计数,即ARC,在工程中使用ARC非常简单:只需要像往常那样编写代码,只不过永远不写retain,release和autorelease三个关键字就好,这是ARC的基本原则。当ARC开启时,编译器将自动在代码合适的地方插入retain,release和autorelease,而作为开发者,完全不需要担心编译器会做错。
ARC与其他语言的“垃圾回收”机制不同。ARC:编译器特性;“垃圾回收”:运行时特性。
3、ARC工作原理及判断准则
ARC是Objective-C编译器的特性,而不是运行时特性或者垃圾回收机制,ARC所做的只不过是在代码编译时为你自动在合适的位置插入release或autorelease,
只要没有强指针指向对象,对象就会被释放。
4、ARC机制
一个对象可以拥有不止一个的持有者(这个类似MRC中的retainCount>1的情况)。
ARC的一个基本规则即是,只要某个对象被任一strong指针指向,那么它将不会被销毁。如果对象没有被任何strong指针指向,那么就将被销毁。在默认情况下,所有的实例变量和局部变量都是strong