Iphone 如何从obj-c中的NSString调用类方法?
在obj-c中,我如何呼叫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
[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];