对于Objective-C …指向方法的指针

我想设置一个方法调度表,我想知道是否有可能创建指向Objective-C中的方法的指针(如指向C中的函数的指针).我尝试使用一些Objective-C运行时函数来动态切换方法,但问题是它会影响所有实例.

由于我是Objective-C的新手,因此非常感谢一个示例.

Objective-C方法称为选择器,由SEL数据类型表示.如果你的对象继承自NSObject,你可以告诉它执行一个选择器(即调用方法),如下所示:

SEL selector = @selector(doSomething:);
[obj performSelector:selector withObject:argument];

这假设您有一个定义的方法,例如:

-(void)doSomething:(MyObject*)arg;

选择器通过@selector关键字分配给SEL数据类型,该关键字采用您想要保留的方法的名称.方法的名称是去除所有参数的方法名称.例如:

-(void)doSomething:(MyObject*)arg withParams:(MyParams*)params

将被引用为@selector(doSomething:withParams :).

相关文章
相关标签/搜索