ios 内存管理的理解(四)ARC下循环引用问题

案例 一个人拥有一只狗,一只狗拥有一个主人。

@interface Person :NSObject

@property(nonatomic,strong) Dog* dog;
@end
@interface Dog :NSObject

@property(nonatomic,strong) Person* person;
@end
 Person *p=[Person new];
 Dog * d=[Dog new];
 d.person=p;
 p.dog = d;

上述代码块会行成循环引用问题

解决方法:一端用strong,一端用weak。

@interface Person :NSObject

@property(nonatomic,strong) Dog* dog;
@end


@interface Dog :NSObject

@property(nonatomic,weak) Person* person;
@end
ARC中的@property参数
strong : 用于OC对象, 相当于MRC中的retain
weak : 用于OC对象, 相当于MRC中的assign
assign : 用于基本数据类型, 跟MRC中的assign一样
copy : 一般用于NSString, 跟MRC中的copy一样
早起的年轻人 CSDN认证博客专家 移动开发 项目管理 Java
只要用心去做,每一件事情还是有可能成功的,当然成功是没有界限的,只不过是达到自己心里的那个目标,公众号:我的大前端生涯,一个爱喝茶的程序员,通常会搞搞SpringBoot 、Herbinate、Mybatiys、Android、iOS、Flutter、Vue、小程序等.
©️2020 CSDN 皮肤主题: 代码科技 设计师:Amelia_0503 返回首页