博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oc51--循环retain
阅读量:5896 次
发布时间:2019-06-19

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

//  main.m//  循环retain#import 
#import "Person.h"#import "Dog.h"int main(int argc, const char * argv[]) { Person *p = [Person new]; Dog *d = [Dog new]; // 如果A对用要拥有B对象, 而B对应又要拥有A对象, 此时会形成循环retain // 如何解决这个问题: 不要让A retain B, B retain A // 让其中一方不要做retain操作即可 p.dog = d; // retain d.owner = p; // retain assign [p release]; [d release]; return 0;}
//  Dog.h#import 
@class Person;@interface Dog : NSObject//@property(nonatomic, retain)Person *owner;@property(nonatomic, assign)Person *owner;@end
//  Dog.m#import "Dog.h"#import "Person.h"@implementation Dog-(void)dealloc{    NSLog(@"%s", __func__);//    [_owner release];//    self.owner = nil;    [super dealloc];}@end
////  Person.h#import 
@class Dog;@interface Person : NSObject@property(nonatomic, retain)Dog *dog;@end
//  Person.m#import "Person.h"#import "Dog.h"@implementation Person- (void)dealloc{    NSLog(@"%s", __func__);//    [_dog release];    self.dog = nil;    [super dealloc];}@end

 

本文转自农夫山泉别墅博客园博客,原文链接:http://www.cnblogs.com/yaowen/p/7428389.html,如需转载请自行联系原作者

你可能感兴趣的文章
.NET程序的性能要领和优化建议
查看>>
eclipse failed to create the java virtual machine 问题图文解析
查看>>
POJ 3614 Sunscreen 优先队列
查看>>
STM8S 独立看门狗配置及使用
查看>>
Linux常用命令_(进程管理)
查看>>
[转帖]cocos2d-x 3.0rc开发指南:Windows下Android环境搭建
查看>>
(原创)拨开迷雾见月明-剖析asio中的proactor模式(一)
查看>>
Accounting_权责发生制和收付实现值的区别(概念)
查看>>
数学图形(2.16)三维螺线
查看>>
02 Architecture Overview
查看>>
[Oracle] 11G自己主动收集统计信息
查看>>
分享一个快速的Json(反)序列化开源项目 Jil
查看>>
騰訊RTX的API開發,給RTX開個天窗
查看>>
NGUI Clip Animation (UI动画)
查看>>
纯CSS3编写的面包屑导航收集
查看>>
uva208 - Firetruck
查看>>
关于缺省路由传递问题的探讨(上)[ip default-network、ip default-gateway等]
查看>>
矩阵乘法 --- hdu 4920 : Matrix multiplication
查看>>
FireFly 服务端 Unity3D黑暗世界 客户端 问题
查看>>
opencv-----基本数据类型
查看>>