ruby的send方法是否有客观的c"等价"?

use*_*146 4 ruby iphone objective-c

我不确定这是否可行,但在ruby中,您可以使用send动态调用方法

例如,如果我想调用对象的bar方法,foo,我可以使用

foo.send("bar")
Run Code Online (Sandbox Code Playgroud)

有没有办法用objective-c做类似的事情?

TKS!

hbw*_*hbw 13

据我所知,有几种选择

  1. 你可以使用NSObject的performSelector:方法.但是,这只适用于参数很少或没有参数的方法.
  2. 使用NSInvocation类.这有点过分,但更灵活.
  3. 您可以使用objc_msgSend(),但由于运行时可能在幕后执行的其他操作,直接调用它可能是个坏主意.