Objective C calling method dynamically with a string

时间秒杀一切 提交于 2019-11-27 06:47:01

You can try something like

SEL s = NSSelectorFromString(selectorName);
[anObject performSelector:s];

You can use the objc_msgSend function. It takes two parameters, the receiver and the selector to send to it:

objc_msgSend(self, someSelector);

You'll need to turn your string into the appropriate selector using NSSelectorFromString:

NSString *message = [self getSomeSelectorName];
objc_msgSend(self, message);

The method also takes a variable number of arguments, so you can send messages with any number of arguments.

NSString *message = [self getSomeSelectorNameWithManyArguments];
objc_msgSend(self, message, arg1, arg2, arg3, arg4);
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!