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

Overriding self with a weak reference

Published on 12 Jun 2017

Avoid memory leaks when accidentially refering to self in closures by overriding it locally with a weak reference:

dataLoader.loadData(from: url) { [weak self] result in
    guard let self = self else { 
        return 
    }

    self.cache(result)
    
    ...