有没有办法从NSString构建一个函数?

时间:2013-11-21 05:01:06

标签: objective-c nsstring selector

让我说我从webservice下载一些包含objective-c代码的文本,有没有办法让它成为选择器?

修改 我编辑了我的标题,我的意思是在运行时从下载的字符串构建函数。

3 个答案:

答案 0 :(得分:4)

呃,你的意思是obj-c代码......

您是否正在下载需要在运行时编译的类/代码?

或者您已经在实现中使用了这些方法,该服务只会告诉您要调用哪些方法?

如果后者是正确的,那么你可以使用它:

SEL aSelector = NSSelectorFromString(@"methodName")

请注意,如果此方法包含参数,则会出现如下字符串:

SEL aSelector = NSSelectorFromString(@"methodNameWithParam:anotherParam:")

NSSelectorFromString ref

如果前者是正确的,欢迎来到Objective-c runtime,这在技术上是可行的,但我知道苹果指南会非常友好地在运行时下载和修补代码。

希望它有所帮助。

答案 1 :(得分:0)

您可以使用NSSelectorFromString()函数从SEL对象中获取NSString(选择器)。

答案 2 :(得分:0)

听起来你想从webservices加载其他功能吗? 您在该文本中只有功能/选择器名称或实体/实施吗? 在后一种情况下,你不能运行非编译代码,你应该首先编译它然后,依赖于平台是否允许你在运行时加载二进制文件 - 你可以尝试运行它。

如果它只是方法名称 -

NSSelectorFromString()