在 obj-c 中,我该如何调用
[myClass myString];
在哪里myString = @"myMethod";
应该相当于[myClass myMethod];
不确定这种元语言操作是否可行。
在 obj-c 中,我该如何调用
[myClass myString];
在哪里myString = @"myMethod";
应该相当于[myClass myMethod];
不确定这种元语言操作是否可行。
[myClass performSelector: NSSelectorFromString(myString)];
文件:
NSString
成一个选择器(类型SEL
)[myClass class]
返回元类,在元类上调用类方法。例如
[NSString someClassMethod];
NSString *instanceOfString = @"some string instance";
[[instanceOfString class] someClassMethod];
编辑:我误读了这个问题。用于NSSelectorFromString
从 NSString 获取 SEL。这记录在 Apple 的Foundation Functions Reference中,您还将在其中看到NSClassFromString
、NSStringFromClass
、NSStringFromSelector
等。NSStringFromProtocol
NSProtocolFromString
您可以使用NSSelectorFromString
,类似以下内容的东西应该可以工作:
SEL selector = NSSelectorFromString(@"myMethod");
[myClass performSelector:selector withObject:nil];
SEL mySelector = NSSelectorFromString(@"myMethod");
[myClass performSelector:mySelector];
或者,如果您在参数和/或返回类型方面需要比performSelector:
朋友给您更多的灵活性,请查看NSInvocation类。