Лучшее решение - просто
- (void)testDealloc
{
__weak CLASS *weakReference;
@autoreleasepool {
CLASS *reference = [[CLASS alloc] init]; // or similar instance creator.
weakReference = reference;
// Test your magic here.
[...]
}
// At this point the everything is working fine, the weak reference must be nil.
XCTAssertNil(weakReference);
}
Это работает, создавая экземпляр класса, который мы хотим освободить внутри @autorealase
, который будет освобожден (если мы не просочились), как только мы выйдем из блока. weakReference
будет содержать ссылку на экземпляр без его сохранения, для которого будет установлено значение nil
.