一.ARC:自动引用计数,即ARC。系统自动帮助我们去计算对象的引用计数器的值。
在程序中使用ARC非常简单,只需要像往常那样编写代码,只不过永远不要写retain、release、autorelease
允许重写dealloc,但是不允许调用[super dealloc];
特别注意的是ARC是编译器机制,当ARC开启时,编译器会自动的在合适的地方插入retain、release、autorelase代码,自动为对象做引用计数。
二.ARC判断标准:
本质: 对象的引用计数器为0的时候,自动释放。
表象: 只要没有"强指针"指向这个对象,这个对象就会立即回收。
就算此时仍有 "弱指针" 指向该对象或者该对象还指向其他对象,只 要没有强指针指向它就会释放对象。
系统还会根据弱指针的情况及时释放弱指针对象,避免野指针的产生。
指针分为两种:
1.强指针:
强指针:默认情况下,声明一个指针,这个指针就是一个强指针。
我们也可以使用 _Strong 来显示声明这个是个强指针。
Person *p1;//这是个强指针,指针默认情况下都是个强指针
_strong person *p2 //这也是个强指针,使用_Strong来显示的声明强指针.