让我说我从webservice下载一些包含objective-c代码的文本,有没有办法让它成为选择器?
修改 我编辑了我的标题,我的意思是在运行时从下载的字符串构建函数。
答案 0 :(得分:4)
您是否正在下载需要在运行时编译的类/代码?
或者您已经在实现中使用了这些方法,该服务只会告诉您要调用哪些方法?
如果后者是正确的,那么你可以使用它:
SEL aSelector = NSSelectorFromString(@"methodName")
请注意,如果此方法包含参数,则会出现如下字符串:
SEL aSelector = NSSelectorFromString(@"methodNameWithParam:anotherParam:")
如果前者是正确的,欢迎来到Objective-c runtime,这在技术上是可行的,但我不知道苹果指南会非常友好地在运行时下载和修补代码。
希望它有所帮助。答案 1 :(得分:0)
您可以使用NSSelectorFromString()
函数从SEL
对象中获取NSString
(选择器)。
答案 2 :(得分:0)
听起来你想从webservices加载其他功能吗? 您在该文本中只有功能/选择器名称或实体/实施吗? 在后一种情况下,你不能运行非编译代码,你应该首先编译它然后,依赖于平台是否允许你在运行时加载二进制文件 - 你可以尝试运行它。
如果它只是方法名称 -
NSSelectorFromString()