A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© SUPERREN_Hao 中级黑马   /  2016-1-13 21:14  /  749 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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,但反之不能。

4 个回复

倒序浏览
新手虽然没看到那里,但觉得有助于我将来对这里的理解
回复 使用道具 举报
赞 赞 赞
回复 使用道具 举报
very nice!哈哈
回复 使用道具 举报
shenfuhan 来自手机 中级黑马 2016-1-14 18:08:52
报纸
这是那的内容,感觉不像就业班的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马