Hi Lee
I followed it easily enough despite not having wirtten obj-c for 18 months or so, if I'm understanding this correctly the solution manually replaces the generated property getter function in the object's 'vtable' (not sure what you call it in obj-c) subverting its behaviour to do what you need without breaking the 'readonlyness' of the property.
A very useful obj-c trick that I hope I never need to use (because syntax!!!! bleugh.)
I did have some trouble following the TL; DR part:
1) the function (message?) names don't seem to match up, and
2) the term 'swizzle' is a very different usage to how I've heard it used before which also threw me (e.g. texture swizzling on PS2)
Generally: a great (if very specific) nugget of wisdom :)
Oh, also you have a typo - "it's" when you mean "its" here "So we’re stuck with the SKPaymentTransaction and it’s API looks something like this"
Cheers,
Alex