Насколько я понимаю, в ARC локальные переменные должны быть очищены (установлено в 0).Однако у меня есть простая ситуация, когда при использовании модификатора __block локальная переменная не очищается.
Вот несколько простых модульных тестов, которые показывают проблему.
- (void)testARCLocalVarClear
{
FLPuzzleManager *puzzleManager = [[FLPuzzleManager alloc] init];
__block bool loadDone;
NSLog( @"value of loadDone = %d", loadDone );
STAssertFalse( loadDone, @"ARC should have set loadDone to 0" );
}
Iпытался сделать это как часть более крупного модульного теста, который нуждался в переменной __block.Я связал это с этим очень простым примером.
Стоит ли ожидать, что ARC очистит переменную __block в этом случае?