![]() |
1
8
这并不严格正确。块保留其中的对象,因此不要使用
例如,您可以使用
不
如果弱引用不是
记住,当不再有对对象的强引用时,ARC将释放对象。通过在块内创建一个强引用,您可以在完成之前防止可能的释放。
我建议您阅读 Practical Memory Management section 高级内存管理编程指南。特别是,请阅读“使用弱引用避免保留周期”小节。 |
![]() |
2
3
请记住,在ARC中,只要存在 坚强的 参考它。 当一个对象具有弱引用时,该对象可能会被释放(如果没有其他对同一对象的强引用),因此弱引用不能确保对象的生命。 通过这样做:
你要确保你有
坚强的
在使用该对象之前引用该对象(
|
![]() |
3
3
对弱引用的强引用保留对象。在以下情况下可能很重要
如果弱接收器在第(2)行不可预测地设置为零,则资源可以在(1)中成功分配,但在(3)中不能释放。为了避免此类问题,可以使用强有力的参考。
现在,如果self-ref在(1)中不为零,则在(2)和(3)中也有效。 |