您的位置:首页 > 其它

【OC中的内存管理知识】

2015-10-22 11:39 253 查看
什么是内存管理?
内存管理是指,程序员对堆空间的管理。内存管理的任务就是保证开辟的空间能够被正确释放。
内存管理存在的问题
1.内存泄漏 :只开辟空间,不释放空间
2.提起释放:该堆空间没有使用完毕,就被释放掉了
3.重复释放:把一块堆空间给释放多次
内存泄漏和提前释放这两个问题短时间内不会造成程序崩溃,重复释放,程序直接崩溃.

oc内存管理的黄金法则
(1)凡是alloc、new、retain、copy、mutblecopy(以及有new、 copy、 mutblecopy开头的)方法,【创建】(此处的创建意思就是调用了这些方法)的对象,都需要使用release或autorelease方法释放。
(2)谁【创建】,谁【释放】。用哪个类创建,哪个类来释放

自动释放池:
【autoreleasepool】类似于一个数组,当一个对象调用方法autorelease时,autorelease并不会将计数器减一,而是将当前对象,地址添加到自动释放池中,当池释放,会释放每个元素。
原则:能不用就不用,在ios程序中,每个触发周期都会创建并释放一个自动释放池。
一个自动释放池,不会打断一个函数的调用,所以说,如果对象只用在当前函数中,离开函数,就不用了,可以使用自动释放
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: