Stylistically, I prefer using `NSInvocation` to compiler pragmas.