在字典中存储回调(iPhone的Objective C)

Cas*_*ash 3 objective-c

我试图在字典中存储回调.

  • 我不能使用块,因为iPhone不支持这个(除非你使用plblocks).
  • 我尝试使用函数,但显然NSMutableDictionary不允许这些指针(想要一个id)
  • 我尝试使用类方法,但我找不到获取指向这些方法的方法
  • 我可以尝试使用带有c ++ stl hashmap的函数(如果在Objective C++中支持它),但显然这会减慢编译时间.
  • 我可以尝试存储类和选择器,但这看起来相当混乱.

最好的方法是什么?

gca*_*amp 7

您可以将它放在NSInvocation中.

NSInvocation是一个静态呈现的Objective-C消息,也就是说,它是一个变成对象的动作.NSInvocation对象主要通过NSTimer对象和分布式对象系统用于在对象之间和应用程序之间存储和转发消息.