Whether to macro-ise code to compile under both ARC and MRC is a debated subject which I won't go into here.

The main reason I prefer immediate `autorelease` under MRC is to prevent a leak in case anything exits early before you get to the `release`. Not an issue here.