一,内存管理类型定义
1,基本类型 任何C的类型,eg:
int,short,char,long,long long,struct,enum,union等属于基本类型或结构体
内存管理对于C语言的基本类型无效
2,OC类型(非基本类型)
任何继承于NSObject类的对象都属于OC类型
也就是除了C之外的其他类型
二,OC对象结构
所有OC对象都有着一个计数器,保留着当前对象被引用的数量,如果计数器为0,那么就真正的释放这个对象。
三,alloc retain release 函数
1, alloc函数是创建对象使用,创建完成后计数器为1(只用一次)
retain是对一个对象的计数器+1 (可以多次调用)
release是对一个对象计数器-1(减到0 对象就会从内存中释放)
2,oc类中实现了引用计数器,对象知道当前被引用的次数。
如果需要引用对象,可以给对象发送一个retain消息,这样对象计数器就+1;
当不需要引用对象了,可以给对象发送release消息,这样对象计数器就-1;
当计数器减到0,自动调用对象的dealloc函数,对象就会释放内存;
计数器为0的对象不能再使用release和其他方法。
四,自动释放池
自动释放池是OC的一种内存自动回收机制,可以将一些临时变量通过自动释放池来统一回收释放。
当自动释放池本身销毁的时候,池子里面所有的对象都会做一次release操作。
任何OC对象只要调用autorelease方法,就会把该对象放到离自己最近的自动释放池中(栈顶的释放池)。
五,不是用alloc,retain,copy创建的对象,不能使用release释放。
分享到:
相关推荐
iOS学习笔记之QuartzCore框架.pdf
iOS学习笔记之QuartzCore框架.rar
ios学习笔记中用到的美化按钮的背景图,iphone风格
ios学习笔记---simpleping 适合初学者练习使用。只是一个小的demo
是之前 IOS学习笔记上补充了一些 这边只是备份以后用到好下载 也欢迎你们来下载 学习 ^ ^
ios安全学习笔记, 供需要的人学习. 对iOS 感兴趣的同学可以看看
ios移动开发的内存管理ppt,讲的不错,你值得拥有
ios学习笔记 --sqllite3 创建 插入 查询 适合新手学习 加油
iOS开发学习笔记之内存分配图示.虚拟内存分配图示
IOS 内存管理 详细讲解iOS内存管理,对于深入研究内存管理的同学必须下载啊!
1.ios系统当前内存显示 2.label显示当前内存
iOS学习笔记,技术道路走到黑.zip
ios内存管理之遛狗原则,还有自定义数组管理内存
这里面讲的都是些平常见的事情,平时看看,对自己开发能力有所提高
NULL 博文链接:https://ff20081528.iteye.com/blog/1678018
我自学iOS开发时做的笔记,主要是OC语言的语法部分,没有包fundation框架,以我的亲身感受总结出iOS初学者容易犯的错误及疑问的地方,对本文如果意见欢迎与我交流,谢谢
庄延军《iOS内存管理及优化》,一本不错的关于ios内存管理的书。
翻译的Pro Multithreading and Memory Management for iOS and OS X with ARC, Grand Central Dispatch, and Blocks中的block章节