0
我的理解是,ARC下的局部变量应该被清除(设置为0)。但是,我有一个简单的情况,在使用__block修饰符时,局部变量不会被清除。ARC __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");
}
我试图执行此作为所需的__block变量较大的单位测试的一部分。我将它与这个非常简单的例子进行了配对。
我应该期望ARC在这种情况下清除__block变量吗?
ARC是否仅预先清除作为对象的堆栈变量? –