黑马程序员技术交流社区

标题: ARC机制中,到底何时使用weak? [打印本页]

作者: 崔石炫    时间: 2014-10-17 16:56
标题: ARC机制中,到底何时使用weak?
非ARC机制中,@property内存管理相关的参数:
retain、assign

ARC机制中,@property内存管理相关的参数:

strong、weak、assign

问题来了,只要是OC对象类型,建议用strong和weak,基本数据类型仍然用assign,

那么,到底怎样的对象才使用weak呢?占用内存很小的OC对象用weak吗?





作者: 魔法少年十三    时间: 2014-10-17 17:33
两端互相引用的时候必须是一个strong一个weak
作者: 我说你是个逗比    时间: 2014-10-17 17:46
比如说有一个Person类和Dog类,人有狗这个成员变量,狗有人(主人)这个成员变量,那么如果都用strong的话,创建的对象总是有强指针指着,导致无法释放,这个时候,一端就要用weak属性,一端用strong属性。
作者: 崔石炫    时间: 2014-10-17 22:44
魔法少年十三 发表于 2014-10-17 17:33
两端互相引用的时候必须是一个strong一个weak

目前为止,也就只能用在这儿了。
作者: 崔石炫    时间: 2014-10-17 22:46
我说你是个逗比 发表于 2014-10-17 17:46
比如说有一个Person类和Dog类,人有狗这个成员变量,狗有人(主人)这个成员变量,那么如果都用strong的话 ...

谢谢啦。两个类互相引用的时候是要这么用的……
作者: 魔法少年十三    时间: 2014-10-18 16:19
崔石炫 发表于 2014-10-17 22:46
谢谢啦。两个类互相引用的时候是要这么用的……

学到后面会发现UI里面很多变量必须用weak




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2