Mat*_*der 5 delegates objective-c automatic-ref-counting
你好!
我试图在我的应用程序中使用委托.我的项目使用ARC

例如,我有协议X和两个使用它的对象.在对象B中,我为对象A创建了一个实例,并设置了委托自我(A.delegate = self)在运行时,我调用了一个方法callBack(此时我的委托对象是B).之后,他们都执行-showResult方法.
在什么时候形成一个圆形参考?我知道这是一个强大的说明符问题,但我不明白它发生的时间,以及如何跟踪它.
谢谢!
Cal*_*leb 14
如果两个对象都保持对彼此的强引用(也就是说,它们相互保留),那么你手上可能会有一个所谓的"保留周期".这两个对象都不会被释放,因为另一个对象有一个强引用(保留它),所以它永远不会放弃它的引用(释放)另一个对象.
这种情况在代理中很常见,其中一个对象(称为A)创建另一个对象(B)并将其自身设置为B的委托.如果A具有对B的强引用,因此B将不会被释放,并且B也具有对A的强引用,则您具有参考周期.为了避免这种情况,对象通常不保留或保留对其代理人的强引用.让B引用A弱而不强,问题就消失了.
| 归档时间: |
|
| 查看次数: |
3105 次 |
| 最近记录: |