set方法的内存管理细节
2016-12-07 17:15
302 查看
一、多个对象之间的内存管理
1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)
2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)
3.谁retain,谁release
4.谁alloc,谁release
二、set方法的内存管理
内存管理代码规范:
1.只要调用了alloc,必须有release(autorelease)
对象不是通过alloc产生的,就不需要release
2.set方法的代码规范
1> 基本数据类型:直接复制
2> OC对象类型
3.dealloc方法的代码规范
1> 一定要[super dealloc],而且放到最后面
2> 对self(当前)所拥有的其他对象做一次release
1.你想使用(占用)某个对象,就应该让对象的计数器+1(让对象做一次retain操作)
2.你不想再使用(占用)某个对象,就应该让对象的计数器-1(让对象做一次release)
3.谁retain,谁release
4.谁alloc,谁release
二、set方法的内存管理
内存管理代码规范:
1.只要调用了alloc,必须有release(autorelease)
对象不是通过alloc产生的,就不需要release
2.set方法的代码规范
1> 基本数据类型:直接复制
- (void)setAge:(int)age { _age = age; }
2> OC对象类型
- (void)setCar:(Car *)car { // 1.先判断是不是新传进来对象 if ( car != _car ) { // 2.对旧对象做一次release [_car release]; // 3.对新对象做一次retain _car = [car retain]; } }
3.dealloc方法的代码规范
1> 一定要[super dealloc],而且放到最后面
2> 对self(当前)所拥有的其他对象做一次release
- (void)dealloc { [_car release]; [super dealloc]; }
相关文章推荐
- maven 加入json-lib.jar 报错 Missing artifact net.sf.json-lib:json-lib:jar:2.4:compile
- Java并发包总结
- 嵌入式Qt之QWidget的无边框显示
- 使用matlab训练mnist模型
- 最大子矩阵问题<DP>
- 部门人员职位权限表设计
- Prisma修图软件的图片风格转换算法
- os模块之popen
- 移动端页面按手机屏幕分辨率自动缩放的js
- 循序渐进Python3(十二) --1-- web框架之django
- Font-Awesome IIS下不显示问题
- 浅析java中遍历map的两种方式
- linker command failed with exit code 1 (use -v to&n
- 如何用adb命令启动安装的APK
- MFC 对话框 关于exe文件绝对路径的获取,截获。
- 移动端页面按手机屏幕分辨率自动缩放的js
- MySql 权限管理
- 圆形的图片边框
- 杂乱知识点记录
- NO.10 HTML继续开车