Articles, podcasts and news about Swift development, by John Sundell.

Setting up tests to avoid retain cycles with weak references

Published on 22 Aug 2017
Basics article available: Memory Management

Here's an easy way to setup a test to avoid accidental retain cycles with object relationships (like weak delegates and observers) in Swift:

func testDelegateNotRetained() {
    // Assign the delegate (weak) and also retain it using a local var
    var delegate: Delegate? = DelegateMock()
    controller.delegate = delegate
    // Release the local var, which should also release the weak reference
    delegate = nil

Support Swift by Sundell by checking out this sponsor:


RevenueCat: Easily build and manage iOS and Android in-app purchases. With just a few lines of code RevenueCat provides IAP infrastructure, customer analytics, data integrations, and gives you time back from dealing with edge cases and updates across all platforms.