arc 机制下的循环引用: 对象a 中有一个对象b作为属性,对象b中又有一个对象a做属性。
如果两边都使用strong来修饰。并且互相赋值,会导致程序结束前,a和b都无法释放。
解决方法: 1端用strong 1端用weak
原理是:使得其中一个对象植只呗一个弱指针指向,导致这个对象释放,其内部指向另一个对象的强指针跟着销毁。最终另外一个对象因为没有强指针指向也被释放。
mrc 机制下:同理。
解决方法: 1端使用retain 1端使用assign
注意:使用assign 的那一端,delay 不需要再去release 对象。
|
|