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是否僅預先清除作爲對象的堆棧變量? –