1

可能吗?

4

3 回答 3

4

Objective-C 运行时有一个名为“ method_getName ”的函数,它接受一个 Method 对象并返回一个 SEL。

于 2009-08-15T19:04:51.237 回答
2

或者,使用:

NSSelectorFromString(@"myMethodName");
于 2009-10-17T16:12:29.870 回答
0

您在标题中的示例不太清楚。

但我们走了。所有类的所有选择器都位于同一个命名空间中。doFoo在 classBardoFooon class 上的含义Baz都将是相同的唯一选择器。这意味着您无需为获得选择器而费心上课。两种不错的方法。

NSSelectorFromString(@"doFoo");  // If you have the selector name as a string.
@selector(foFoo);  // If it is selector constant inlined in your code.

您的问题也可能是指如何从方法中返回选择器。由于选择器是 obj-c 中的一等公民,我们可以将它们作为任何变量传递,并从方法中返回它们。选择器的类型是SEL

-(SEL)selectorFromFoo:(Foo*)aFoo;  // Declare a method returning a selector.

SEL sel = [myBar selectorFromFoo:myFoo];    // Get a selector.
[myBar proformSelector:sel withObject:nil]; // Perform this selector
于 2009-11-10T15:19:08.127 回答