黑马程序员技术交流社区
标题:
内存管理相关
[打印本页]
作者:
冷面小哥
时间:
2016-7-15 23:58
标题:
内存管理相关
内存管理
管理范围:任何继承于 NSObject的对象
原理:
每一个对象都有引用计数器
当使用alloc new 和 copy创建对象时引用计数器被设置为1
给对象发送一条retain消息 ,引用计数器加1 —
给对象发送一条relrase消息,引用计数器会减1
计数器为0时,对象会被回收
只要用alloc new创建新对象,那么你就有责任做一次release
不可以再操作已经被释放的对象,不然会发生野指针错误
在对象释放前操作对象
你想使用某个对象,就应该放对象的计数器+1
你不想使用某个对象,就应该让对象的计数器-1
成员变量内存管理(如果成员变量是对象,才需要管理)
哪里有 alloc new 哪里有 release
release 旧对象
retain新对象
dealloc 方法就是释放当前拥有的所有对象
nonatomic:性能高 多线程不加锁
atomic 性能低,多线程加锁
autorelease 会将对象放到一个自动释放池中
当自动释放池被销毁,会将池里的所有对象的一次release操作
作者:
冷面小哥
时间:
2016-7-16 00:00
路漫漫其修远兮,吾将上下而求索
作者:
gdutyong
时间:
2016-7-16 17:18
补充一点,在创建对象的类方法中,记得要调用autorelease方法
作者:
M.W
时间:
2016-7-16 18:23
本帖最后由 M.W 于 2016-7-16 18:27 编辑
gdutyong 发表于 2016-7-16 17:18
补充一点,在创建对象的类方法中,记得要调用autorelease方法
你说的应该是类方法快速创建对象
作者:
M.W
时间:
2016-7-16 18:24
本帖最后由 M.W 于 2016-7-16 18:26 编辑
gdutyong 发表于 2016-7-16 17:18
补充一点,在创建对象的类方法中,记得要调用autorelease方法
MRC模式下
作者:
江小鱼
时间:
2016-7-16 21:17
路漫漫其修远兮 吾将上下而求索
作者:
jilaiyuan
时间:
2016-7-17 23:57
学习学习,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2