NSInvocation seems to be one of the worst designed functions in Cocoa, so I decided to check if anyone had written a recipe to make using it easier. I found a recipe on Matt Gallagher’s blog. Now to be able to do this he used some quite hackish techniques.
- Would you recommend using this code or is this technique too likely to lead to a hard to debug error?
- If not, what would you recommend instead?
I have used this NSInvocation approach in a few shipping iPhone products and Mac products. It definitely employs a few strange techniques but it’s not a fragile hack by any means: it’s rock solid and about as fast as NSInvocation creation is likely to be.
I did briefly have a retain count bug in the code (long since fixed) but it’s no harder to debug retain counts here than anywhere else.
Of course, my opinion is completely biased.