Should self be captured as strong in a UIAlertAction's handler?

Solution 1:

The key question to ask yourself is if your alert object is "owned" by self. In this case, it is not (because you declared let alert = ... in the function body). So you do not need to create this as a weak or unowned reference.

If alert was a property of self, then it would be "owned" by self and that is when you would want to create a weak reference to self in the closure "owned" by the alert.