一 ARC概念及原理
1 指针分类
强指针:默认的情况下,所有的指针都是强指针,关键字strong
弱指针:__weak关键字修饰的指针(声明一个弱指针 __weak Person *p)
2 什么是ARC
Automatic Reference Counting, 自动引用计数,即ARC。
基本原则: 永远不写retain release autorelease
是编译器的特性,在代码编译时为你自动在合适的位置插入release或autorelease
判断准则: 只要没有强指针指向对象,对象就会被释放。
二 ARC下单对象内存管理
当car不在指向对象,Car对象就释放。
局部变量释放,即car不在指向对象,Car对象就释放。
三 ARC下多对象内存管理
无论Person对象中的dog对象是强指针还是弱指针,Person对象销毁,dog对象都将会销毁
四 ARC下@propoty参数
strong : 用于OC对象,相当于MRC中的retain
weak: 用于OC对象,相当于MRC中的assign(一般用于UI控件中)
assign : 用于基本数据类型, 跟MRC中的assign一样
copy: 一般用于NSString,跟MRC中的copy一样