我正在开发一个自定义iOS SDK。我正在根据我的要求创建弱而强的引用。我不清楚的是:弱引用对象何时会被解除分配?
假设我有 3 个对象A,B,C
。A
对 有弱引用B
和B
对 有强引用C
。
A --- >(weak ref) B --->(strong ref)C
. 所有 3 个对象都是内存中的对象。由于B
没有对它的任何强引用,它可能会被取消分配。一旦B
被释放,C
对象内存泄漏。我不能有从“c”到“B”的强引用来防止它被释放,因为它可能会导致保留周期。ARC 将如何决定解除分配B
?我确实明白,当最后一个对它们的强引用消失时,对象将立即被释放。但是无论如何都没有强烈引用“B”的对象。在这种情况下,B什么时候被释放?