一.自动释放池
自动释放池概念:
自动释放池中保存对象地址,自动释放池在被执行完毕的时候,会对池中的对象自动执行一次release操作。
如何建立自动释放和对象的关系:
用对象调用 -(id)autorelease 方法。
运用场景:
autorelease 运用在方法中创建对象并需要返回对象,需要对象延迟销毁。延迟当自动释放池销毁时被销毁
二ARC 自动引用计数
ARC目的:
让程序员不在关心对象的retainCount值,也就是对象的内存管理。
ARC本质:
ARC 本质是操作对象的retainCount值。本质也是retain releace.
强指针和弱指针
强指针:默认创建的指针都是强指针。 系统判断对象是否被回收的依据,只要没有强指针指向该对象,该对象就会被释放。
弱指针:不会影响到对象的回收。(_weak Persion *p = [[Persion alloc] init])处理对象与对象的关系。
其他说明:
1.手动内存管理机制转换为ARC机制
edit->refactor->convert to objective-c ARC
不建议这样做。
2.手动内存管理和自动管理
build phases ->complie sources->选择.m文件 添加参数 -fon-objc-arc
3.ARC机制类相互引用
在类对象声明的时候,一个对象属性用 强类型,另一个用 弱类型,例如 A B类相互引用
@property (nonatomic,strong) B *b;
@property (nonatomic,weak) A *a;