Поскольку __unsafe_unretained
и __weak
могут прервать цикл сохранения в кадре в ARC, я пытаюсь использовать __unsafe_unretained
в MRC, и в результате получается YES
.Так в чем же абсолютная причина этого?
Я знаю, __block
может разорвать цикл сохранения блока с регистром BLOCK_BYREF_CALLER | BLOCK_FIELD_IS_OBJECT
в MRC.Но __unsafe_unretained
- это случай BLOCK_FIELD_IS_OBJECT
, такой же, без __unsafe_unretained
, и он сохранит NSObject
в MRC.
Так что я не знаю почему.
Пожалуйста, смотрите libclosure-67