博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Objective-C MRC多个对象相互引用的内存管理
阅读量:5359 次
发布时间:2019-06-15

本文共 601 字,大约阅读时间需要 2 分钟。

在MRC环境下,假定CTRoom对象是CTPerson的一个成员变量,那么修改CTRoom对象时应注意,代码如下:

- (void) setRoom:(CTRoom *) room{
   //需判断新旧值是否相等,一旦相等则[_room release]等价于[room release],那么[room retain]将抛出异常。 if(_room != room){ [_room release]; //释放旧值 _room = [room retain];  //retain新值 }}

- (void) dealloc

{

//    [_room release];

//    _room = nil;

    self.room = nil; //同时,这一句代码等效前面两句

    [super dealloc];]

}

 
CTPerson *person = [[CTPerson alloc] init];    CTRoom *r = [[CTRoom alloc] init];    [person setRoom:r];    [r release];    person.room = r;    [person release];

 

转载于:https://www.cnblogs.com/lijizhuang/p/4910116.html

你可能感兴趣的文章
MySQL中 1305-FUNCTION liangshanhero2.getdate does not exit 问题解决
查看>>
Ctrl+Alt+Down/Up 按键冲突
查看>>
python序列化和json
查看>>
mongodb
查看>>
网格与无网格
查看>>
2018年3月份
查看>>
SSH-struts2的异常处理
查看>>
《30天自制操作系统》学习笔记--第14天
查看>>
LGPL协议的理解
查看>>
1、Python基础
查看>>
Unity The Tag Attribute Matching Rule
查看>>
试着理解下kvm
查看>>
WebService学习总结(二)--使用JDK开发WebService
查看>>
Tizen参考手机RD-210和RD-PQ
查看>>
竞价广告系统-位置拍卖理论
查看>>
策略模式 C#
查看>>
[模板]树状数组
查看>>
[HDU 6447][2018CCPC网络选拔赛 1010][YJJ's Salesman][离散化+线段树+DP]
查看>>
设计模式学习的好方法
查看>>
感谢Leslie Ma
查看>>