Obj-C ARC could do this with NS_VALID_UNTIL_END_OF_SCOPE, but Swift only has withExtendedLifetime(), which is probably more typing than just using defer.
(The ObjC version would break if you ever threw an exception, ARC doesn't release objects during unwinding!)
(The ObjC version would break if you ever threw an exception, ARC doesn't release objects during unwinding!)