可能吗?
问问题
964 次
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
在 classBar
或doFoo
on 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 回答