由于__unsafe_unretained
和__weak
可能会破坏ARC块中的保留周期,因此我尝试在MRC中使用__unsafe_unretained
,结果为YES
。那么,这样做的绝对原因是什么?
我知道__block
可以在MRC中的情况BLOCK_BYREF_CALLER | BLOCK_FIELD_IS_OBJECT
情况下中断该块的保留周期。但是__unsafe_unretained
是BLOCK_FIELD_IS_OBJECT
的情况,没有__unsafe_unretained
,并且将NSObject
保留在MRC中。
所以我不知道为什么。