Iphone 如何从obj-c中的NSString调用类方法?

Iphone 如何从obj-c中的NSString调用类方法?,iphone,objective-c,ios,nsstring,meta,Iphone,Objective C,Ios,Nsstring,Meta,在obj-c中,我如何呼叫 [myClass myString] 其中myString=@“myMethod” 它应该相当于[myClass myMethod] 不确定这种元语言操作是否可行。[myClass class]返回元类,并对元类调用类方法。例如 [NSString someClassMethod]; NSString *instanceOfString = @"some string instance"; [[instanceOfString class] someClassMet

在obj-c中,我如何呼叫

[myClass myString]

其中
myString=@“myMethod”

它应该相当于
[myClass myMethod]


不确定这种元语言操作是否可行。

[myClass class]
返回元类,并对元类调用类方法。例如

[NSString someClassMethod];

NSString *instanceOfString = @"some string instance";
[[instanceOfString class] someClassMethod];
编辑:我误解了这个问题。使用
nsselector或fromstring
从NSString获取SEL。这在Apple's中有记录,您还可以看到
NSClassFromString
NSStringFromClass
NSStringFromSelector
NSStringFromProtocol
NSProtocolFromString

[myClass performSelector: NSSelectorFromString(myString)];
文件:

  • 将指定的选择器发送到接收器
  • NSString
    转换为选择器(键入
    SEL

您可以使用
nsselector或fromstring
,以下内容应该可以使用:

 SEL selector = NSSelectorFromString(@"myMethod");
 [myClass performSelector:selector withObject:nil];

或者,如果您在参数和/或返回类型方面需要比
performSelector:
更大的灵活性,朋友们会给您提供,请查看该类。

这就是元类。我的问题是关于方法调用的部分,也就是说,我知道这个类,但是我只有一个字符串来表示调用什么方法。哦,误解了。NSSelectorFromString是一个不错的选择。我会编辑,不过最终的答案与汤姆·杰弗里斯(Tom Jefferys)和杰里米普(JeremyP)的答案大致相同。对这场喧闹给出了分数。:)
SEL mySelector = NSSelectorFromString(@"myMethod");
[myClass performSelector:mySelector];