黑马程序员技术交流社区
标题:
关于循环retain问题的笔记
[打印本页]
作者:
红火恍惚
时间:
2015-8-28 21:39
标题:
关于循环retain问题的笔记
关于循环retain问题的个人整理:
1,什么是循环retain?
两个类之间互相包含;
例如:Dog中retain了一个Person,Person中retain了一个Dog;
@interface Dog : NSObject
@property (nonatomic,retain) Person *owner;
@end
@interface Person : NSObject
@property (nonatomic,retain) Dog *dog;
@end
Person *p = [Person new];
Dog *d = [Dog new];
p.dog = d;
d.owner = p;
2,如何解决循环retain?
在两端的set方法中,有一端必须使用assign直接赋值,不能用retain;在@property中参数使用assign。
例如:
@interface Dog : NSObject
@property (nonatomic,assign) Person *owner;
@end
@interface Person : NSObject
@property (nonatomic,retain) Dog *dog;
@end
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2