It depends. The closure keeps a strong reference to self and therefore the view controller is not deallocated until the closure completes. If this behaviour is wanted or not depends on what happens in the closure. If just the UI get’s updated then it makes no sense to keep the controller alive. In this case weak is better. If some other business logic is triggered which has to run independent if the view controller is visible or not then you must not catpure self weak but strong.