iOS APP 开发 OC 第十九天,司马光砸缸流出来的不是水,是记忆体。OC记忆体洩漏。

tags: OC 30 day

记忆体洩漏

指的是一个对象的记忆体没有被即时回收,在该回收的时候没有被回收,一直驻留在内存当中,直到程序结束时才被回收。

单个对象的记忆体洩漏情况

有对象的创建,而没有对应的release。retain 的次数与release的次数不匹配。在不适当的时候,为指针赋值为nil。在方法中未传入的对象进行不适当的retain。

如何保证单个对象可以被回收?

有对象的创建,就必须要匹配一个releaseretain次数和release次数一定要匹配。只有在指针称为也指针的时候才赋值为nil。在方法中不要随意的为传入的对象retain。

多个对象的记忆体管理

当属性是一个OC对象的时候setter方法的写法。
将传进来的对象赋值给当前对象的属性,代表传入的对象多了一个人使用,所以我们应该先为这个传入的对象发送一条retain消息,再赋值。当当前对象销毁时,代表属性指向的对象少一个人使用。就应该在dealloc中release。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章