Try using NSMapTable with NSObjectMapKeyCallBacks and NSNonOwnedPointerMapValueCallBacks. This works like an NSMutableDictionary, but allows any pointers as values, not just objects.
You can also save the selector in the NSInvocation object and use it with a regular dictionary. If you need to store more than a selector (target, parameters, etc.), this is probably the best solution.
source share