黑马程序员技术交流社区
标题:
内存管理
[打印本页]
作者:
SUPERREN_Hao
时间:
2016-1-13 21:14
标题:
内存管理
oc内存管理总结:
1,一个对象引入另一个对象是,需要在设置这个对象的方法中做内存管理。
release旧值,retain新值
MRC:手动管理
retain:表示自动在设置这个对象的方法实现内存管理
assgin:不管理,主要在去非OC对象操作(默认)
目的是引用计数器准确!
ARC:自动管理,原则:只要一个对象没有强引用的时候,则销毁。
strong :表示自动在设置这个对象的方法实现内存管理。
weel:表示这个对象是弱引用
循环引用:概念:一个对象引用了另一个对象另一个对象引用了这个对象
循环引用:
MRC:一个用retain,一个用assign
ARC:一个用strong 一个用week
MRC与ARC二者的区别与相同点
相同:目的相同,为了返回内存泄漏。
内存泄漏:当一个对象没有被使用时候,这个对象却没有被销毁,依然在内存中占用旁空间,这就叫内存泄漏。
都有内存管理的方法:retain,release autorelease
都能重写dealloc方法:就是对象销毁时候会自动执行的方法,也就是对象销毁的标志且这个方法都能重写
二者都能使用的参数
1,assign:非oc对象
2,跟性能相关,与多线程相关的:nonatomic(不同步,高性能),atomic(同步,但性能更低,默认的)
3,跟权限相关的:readonly:只读,没有设置方法 readwrite:可读可写(默认的)
4,getter与setter:去自定义响应的方法set与get方法名
不同点:
MRC ARC
管理模式; 手动 自动
内存管理方式
自己手动添加 自动添加, 不能手动添加
需要
retain 用strong与
release week去管理
autorelease 对象
dealloc的区别:
必须调用super dealloc 不能调用
操作技巧:所有的MRC可以在Xcode,一键转换成ARC,但反之不能。
作者:
dragon.龙龙
时间:
2016-1-13 22:47
新手虽然没看到那里,但觉得有助于我将来对这里的理解
作者:
xiangning
时间:
2016-1-14 16:54
赞 赞 赞
作者:
iotwhh
时间:
2016-1-14 17:05
very nice!哈哈
作者:
shenfuhan
时间:
2016-1-14 18:08
这是那的内容,感觉不像就业班的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2