对象生命周期
在oc中每一个对象通过诞生(alloc或new),生存(执行消息或执行操作),交友(借助方法的组合和参数),直到结束(释放)
引用计数
在java垃圾回收中采用的,根搜索算法,搜索引用的对象,如果没有被引用,把它释放掉。在早期的垃圾回收算法中,有个引用计数算法,引用对象+1,取消引用-1,但是这种方法,对于互相引用的对象,没办法释放。
在oc中怎么描述引用计数的
1.当用alloc,new方法创建一个对象时,对象计数器设置成1,如果增加对象的保留计数器,可以给对象发一条retain消息。
2.要减少对象的保留计数器,可以发送一条release消息。
3.当计数器为0时,会自动发给对象一条dealloc消息,可以重写dealloc方法,通过这种方法释放分配的全部相关资源。
在oc中每一个对象通过诞生(alloc或new),生存(执行消息或执行操作),交友(借助方法的组合和参数),直到结束(释放)
引用计数
在java垃圾回收中采用的,根搜索算法,搜索引用的对象,如果没有被引用,把它释放掉。在早期的垃圾回收算法中,有个引用计数算法,引用对象+1,取消引用-1,但是这种方法,对于互相引用的对象,没办法释放。
在oc中怎么描述引用计数的
1.当用alloc,new方法创建一个对象时,对象计数器设置成1,如果增加对象的保留计数器,可以给对象发一条retain消息。
2.要减少对象的保留计数器,可以发送一条release消息。
3.当计数器为0时,会自动发给对象一条dealloc消息,可以重写dealloc方法,通过这种方法释放分配的全部相关资源。
在处理释放时,先保留新对象,再释放旧对象
内存管理的方式
1.使用retain-release方式,手动管理方式,调用自己
2.ARC,编译时自动帮你添加内存管理方法。
3.垃圾回收:仅在MacOsX中使用,不用于IOS
测试代码: