Objective C calling method dynamically with a string

IPadHackAndSlash picture IPadHackAndSlash · Dec 15, 2010 · Viewed 31k times · Source

Im just wondering whether there is a way to call a method where i build the name of the method on the fly with a string.

e.g. I have a method called loaddata

-(void)loadData;

to call this i would normally call it like

[self loadData];

But i want to be able to call it dynamically with a string e.g.

NSString *methodName = [[NSString alloc] initWithString:@"loadData"];
[self methodName];

This is a stupid example but i hope you get my point. I am using it for databinding classes that I am setting up for my IPad application. Hard to explain but to get it to fire I need to work out how to call a method with a string.

Any ideas?

Thanks

Answer

shreyasva picture shreyasva · Dec 15, 2010

You can try something like

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